"Babes-Bolyai" University of Cluj-Napoca
Faculty of Mathematics and Computer Science

Systems Analysis and Design
Code
Semes-
ter
Hours: C+S+L
Type
Section
MI010
5
2+2+0
compulsory
Informatica
MI010
5
2+2+0
compulsory
Matematică-Informatică
MI010
5
2+2+0
compulsory
Matematici aplicate
Teaching Staff in Charge
Prof. PÂRV Bazil, Ph.D.,  bparvcs.ubbcluj.ro
Lect. CHIOREAN Ioan Danut, Ph.D.,  chioreancs.ubbcluj.ro
Lect. LAZAR Ioan, Ph.D.,  ilazarcs.ubbcluj.ro
Lect. KOVACS Lehel,  klehelcs.ubbcluj.ro
Asist. PETRASCU Dragos,  petrascucs.ubbcluj.ro
Aims
At the completion of this course, the students will/should:
a) have a systematic knowledge concerning application development methodologies
b) be familiar with the modern concepts and techniques in the field of software development
c) know the models developed and modeling tools used in the software development process
d) understand the importance of documentation during the whole software development process.
Content
1. SOFTWARE PROCESS
The life-cycle of a computer program
Software engineering: history, definitions
Waterfall life cycle
Prototyping
The spiral model, Boehm
The staged model
Incremental change
Extreme Programming, XP
2. SOFTWARE DEVELOPMENT: PRINCIPLES AND ACTIVITIES
Problem solving and software development
Communication: principles and tasks
Planning: principles and tasks
Analysis modeling: principles and tasks
Design modeling: principles and tasks
Construction: principles and tasks
Deployment: principles and tasks
3. MODELING SOFTWARE PROCESSES AND SYSTEMS
System modeling
Business process modeling
Tools for software modeling
4. UNIFIED MODELING LANGUAGE
UML. General issues
Modeling requirements
Modeling classes
Modeling behavior
Modeling architecture
5. REQUIREMENTS GATHERING, ENGINEERING, AND SPECIFICATION
Communication techniques
Requirements gathering
Requirements analysis
Specification document
6. ANALYSIS MODELING
Use case modeling
Data modeling
Function modeling
Behavior modeling
Reviewing models
Examples
7. SOFTWARE DESIGN: CONCEPTS AND MODELS
Fundamentals of software design
Design steps
Design concepts
Design models
8. PRINCIPLES OF OBJECT-ORIENTED DESIGN
Good O-O design
Architecture and dependencies
Class design: principles
Architectural design: principles
9. DESIGNING ARCHITECTURE, DATA, AND PROCESSES
Data design. Logical data models
Architecture design. Software components
Mapping data flows into software architecture
10. COMPONENT DESIGN
Software components
Class design
Process design
Design notations
11. USER INTERFACE DESIGN
Human-computer interaction
Interface design rules
User interface models
User interface construction
12. SOFTWARE CONSTRUCTION
Physical design. Programming specifications
Coding
Testing strategies
Testing techniques
13. DEPLOYMENT
Packing and installing
User and maintenance procedures
Software operation
Software maintenance
Human factors involved in the software development process
The organization of the software development process
Other planning activities
The software project plan

Seminar activities
1-2. Case study: requirements analysis (1) - general requirements
communication techniques tehnici de comunicare.doc
the requirements specification document: speccerinte.doc
3-4. Case study: requirements analysis (2) - conceptual data modeling
5. Case study: requirements analysis (3) - process modeling
6-8. Case study: Object-oriented requirements analysis
9. Case study: design (1) - logical data modeling
10. Case study: design (2) - process design
11-12. Case study: design (3) - OO design
13-14. Full case studies

The course takes the form of PowerPoint presentations. The students are invited to read the course material in advance.
The course and seminar materials are available on the Computer Science Department's server, in the folder ..\labor\romana\an3\aps
References
1. FLAATEN, PER O. - MCCUBBREY, DONALD J. - O'RIORDAN, P. DECLAN. - BURGESS, KEITH: Foundations of Business Systems, Dryden Press, 1st ed. 1989, 2nd ed. 1997.
2. FOWLER, MARTIN - SCOTT, KENDALL: UML Distilled: A Brief Guide to the Standard Object Modeling Language, Addison-Wesley, 2nd ed., 1999.
3. IACOBSON, IVAR - BOOCH, GRADY - RUMBAUGH, JAMES: The Unified Software Development Process, Addison-Wesley, 1999.
4. MARTIN, ROBERT CECIL: Agile Software Development: Principles, Patterns, and Practices, Prentice Hall, 2002.
5. PÂRV, BAZIL: Analiza si proiectarea sistemelor, Univ. "Babeş-Bolyai", CFCID, Facultatea de Matematică şi Informatică, Cluj-Napoca, 2002, 2003, 2004.
6. PRESSMAN, ROGER S.: Software Engineering - A Practitioners Approach, McGraw-Hill, 3rd ed. 1992; 4th ed. 1996, 5th ed. 2001, 6th ed. 2005.
7. SCHACH, STEVEN R.: Object-Oriented and Classical Software Engineering, McGraw-Hill, 5th ed., 2002, 6th ed. 2005.
8. SOMMERVILLE, IAN: Software Engineering, Addison-Wesley, 5th ed. 1996, 6th ed. 2000, 7th ed. 2004.
9. Agile Modeling Homepage, [http://www.agilemodeling.com].
10. Software Engineering Body of Knowledge, IEEE, 2004. [http://www.swebok.org].
Assessment
The grading policy is as follows:
2 quizzes (20%)
written midterm exam (30%)
written final exam (50%)
The final mark is computed as weighted average of the individual marks (weights are given in brackets).
Quiz questions refer to the teaching material and mandatory readings. Written exam topics include both questions and small modeling problems from analysis and design.
Links: Syllabus for all subjects
Romanian version for this subject
Rtf format for this subject