Asigurarea Calitatii
Software-ului
Good design and
programming is not learned by generalities, but by seeing how significant
programs can be made clean, easy to read, easy to maintain and modify, human-engineered,
efficient, and reliable, by the application of good design and programming
practices. Careful study and imitation of good designs and programs
significantly improves development skills.
Kernighan & Plauger.
Date |
News |
12.05 |
VERY IMPORTANT
NOTES: ¨ The
lecture notes for lecture 8 was added to the site! ¨ The
suggested reading for lecture 7 was updated! ¨ The
exam dates were set as follows: o
24.05
(09:00 am) and
31.05 (08:00 am) ¨ The exam
will be oral ¨ The meeting
place for the exam is in the lobby of the 5th floor of the main building of
our faculty! ¨ The meeting
for delivering and assessing your project assignments will take place
in my office (ASPC, romm P11) on 26.05 beginning with 15:00. |
26.04 |
¨ The site was
updated! Lectures 5,6,7 were added! ¨ Some small
mistakes in the slides of Lecture 4 were corrected. ¨ ATTENTION: The "Suggested Reading" section for
Lecture 7 will be updated in a couple of days! Therefore, please revisit the
site after Tuesday (29.04)! |
27.03 |
¨ The site was
updated! Modifications occurred in the slides from the last lecture. So,
please download them again! |
24.03 |
¨ Până în momentul
de faţă nu s-au înscris decât 13 studenţi la proiect (vezi
situaţia aici).
Celor care nu se vor înscrie până în data de luni 31.03, ora 18:30,
contactându-mă personal, nu le voi putea încheia situaţia la
laborator/proiect, şi în consecinţă nu vor putea să
îşi finalizeze în vară studiile de „master”! |
20.03 |
¨ The handouts for
Lecture 3 were added to the site. |
14.03 |
¨ The slides and
suggested reading for the second lecture were added! ¨ Teams for the
project assignment were updated! |
10.03 |
¨ The final
version of the slides for the first lecture is now available! |
06.03 |
¨ The site was
updated again. Some small mistakes were corrected. ¨ The lecture
slides were also updated (but are still not final) |
05.03 |
¨ Beginning with
today the site is online! ¨ The next lecture
will take place tomorrow, 06.03 at 17:00 (A314) ¨ Lab/Project
meetings take place Mondays at 18:00 (B528b) ¨ Please
read the information about the project assignment on the bottom part of this
page! |
Activity |
Time |
Room |
Instructor |
Lecture |
Thursday, 17:00 – 19:00
|
A314
|
|
Project Session |
Monday, 18:00 – 20:00 |
B528b |
Lecture |
Suggested Reading |
Lecture 1: Introduction
to Reengineering |
S. Demeyer, S.Ducasse, O.Nierstrasz – Object-Oriented Reengineering Patterns,
Chapter 1 (pg. 1-14) |
E.J. Chikofsky, J.H. Cross
– Reverse Engineering and Design
Recovery: A Taxonomy |
|
FAMOOS Group – FAMOOS Object-Oriented Reengineering Handbook, Chapter 1 |
|
M.M
Lehman – Laws of
Software Evolution Revisited (Section 1 and 2) |
|
Lecture 2: Reverse
Engineering |
S. Demeyer, S.Ducasse, O.Nierstrasz – Object-Oriented Reengineering Patterns,
Chapter 2-4 (pg. 1-14) |
Lecture 3: Reverse
Engineering (contd.) Detailed
Model Capture |
S. Demeyer, S.Ducasse, O.Nierstrasz – Object-Oriented Reengineering Patterns,
Chapter 2-4 (pg. 1-14) |
Lecture 4: Design Extraction |
M. Fowler – UML Distilled, Chapter 4 “Class Diagrams: The
Essentials (pg. 53-69) |
Lecture 5: |
R.C. Martin – The
Open Closed Principle, The
Liskov Substitution Principle,
The
Dependency Inversion Principle, R.C.
Martin – Design
Principles and Design Patterns E.
Gamma, R. Helm, R. Johnson and J. Vlissides – Design
Patterns (Section 1.6, pg. 11-24) |
Lecture 6: Principles of Object-Oriented Design (Part II) |
R.C.
Martin – The
Interface Segregation Principle, Stability,
Granularity R.C.
Martin – Design
Principles and Design Patterns K.J.
Lieberherr, I.M.Holland – Assuring Good Style for
Object-Oriented Programs |
Lecture 7: Detection of Design Problems (ppt.ZIP) |
M. Fowler – Refactorings, Chapter 3 “Bad Smells in Code"
(pg. 75-87) R. Marinescu – Measurement and
Quality in Object-Oriented Design o
Section 2.1
and 2.2 (pg. 7 - 18) o
Section
4.1 (pg. 39 -41) and Section 4.3 (pg. 53 - 61) o
Section
5.1 - 5.3 (pg. 63- 73) o
Section
6.1- 6.2 (pg. 87 - 96 ) |
Lecture 8: Quality-Driven Code Restructuring |
M. Fowler – Refactorings, Chapter 10 “Making Method Calls Simpler" o
Rename Method (pg. 273-274) S. Demeyer, S.Ducasse, O.Nierstrasz – Object-Oriented Reengineering Patterns,
Chapter 10 o
Forces
and Overview (pg. 215 -217) o
Pattern
10.1(pg. 217 - 224) o
Pattern
10.2 (pg. 225 - 233) o
Pattern
10.3 (pg. 234 - 236) o
Pattern
10.4 (pg. 237 - 239) |
Goal
The goal of this project
assignment is to confront you with existing object-oriented cod that was poorly
developed/designed in the past; this might be either your own, old, beloved programs
that you have written in the past or some strange code that other people have
written before you joined the company you are working with and that you
unfortunately have to maintain.
In this context the goal of
this project is to give you a hands-on
experience on methods, techniques and tools that help you understand and
improve it.
Approach
In order to participate in this project please
follow these steps:
If you cannot think of anything like that, send me an email and I will assign you a project.
Teams
The up-to-date situation of the teams can be found here.
Category |
Resource |
Design Principles |
A.J. Riel – Object-Oriented
Design Heuristics (Addison-Wesley, 1996) |
R.C. Martin – The
Open Closed Principle, The
Liskov Substitution Principle, The
Interface Segregation Principle,
The
Dependency Inversion Principle, Stability,
Granularity |
|
R. Johnson – Designing
Reusable Classes (JOOP, 1988) |
|
Design Patterns |
E. Gamma, R. Helm, R. Johnson
and J. Vlissides – Design Patterns
(Addison-Wesley, 1995) . |
F. Buschmann, et.al – Pattern-Oriented
Software Architecture. A System of Patterns (John Wiley & Son, 1996) |
|
Object-Oriented Design |
B. Meyer – Object-Oriented
Software Construction (Prentice Hall, 2000) |
G. Booch – Object-Oriented
Analysis and Design with Applications (2nd Edition) (Addison-Wesley,
1994) |
|
P.Coad, E. Yourdon – Object-Oriented
Design (Yourdon Press, 1990) |