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

Systems analysis and design
Code
Semes-
ter
Hours: C+S+L
Credits
Type
Section
MI010
5
2+2+0
6
compulsory
Informatică
MI010
5
2+2+0
5
compulsory
Matematică-Informatică
MI010
5
2+2+0
6
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:
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 DEVELOPMENT PARADIGMS
1.1. The life cycie of a software application
1.2. Steps to software engineering
1.3. Software engineering: definition
1.4. The classical life cycle (the cascade model)
1.5. Prototyping
1.6. The spiral model, Boehm
1.7. 4GL techniques
1.8. How to combine paradigms
1.9. Software engineering: present and future
2. REQUIREMENTS ANALYSIS
2.1. What is requirements analysis?
2.2. Communication techniques
2.3. Requirements analysis techniques
2.4. Analysis methods
2.5. Requirements specification document
2.6. The review of requirements
3. THE CONCEPTUAL DATA MODEL
3.1. The entity-relationship (E-R) data model
3.2. Data modeling using E-R model
3.3. Generalization
3.4. Business rules
3.5. Steps in (conceptual) data modeling
3.6. An example of E-R modeling
4. THE ESSENTIAL PROCESS MODEL
4.1. Data flow diagrams (DFD)
4.2. Process modeling in the development cycle
4.3. DFD examples
4.4. A step-by-step approach to process modeling
5. THE UNIFIED MODELING LANGUAGE (UML)
5.1. UML History
5.2. UML Concepts
5.3. UML Artifacts
5.4. Object Constraint Language (OCL)
6. OBJECT-ORIENTED ANALYSIS
6.1. OO analysis: steps
6.2. Use case modeling
6.3. Class modeling
6.4. Dynamic modeling
6.5. The review of OOA models
6.6. Object-oriented conceptual modeling example
7. SOFTWARE DESIGN
7.1. Design fundamentals
7.2. Design steps
7.3. Design concepts
7.4. Software architecture design
7.5. The design documentation
8. LOGICAL DATA DESIGN
8.1. The logical data model
8.2. Steps in transforming E-R diagrams into relations
8.3. Obtaining the logical data model from the conceptual data model
8.4. Event analysis
9. PROCESS DESIGN
9.1. General design decisions
9.2. Implementation models
9.3. The general process design
9.4. The primitive process design
9.5. Tools used in process specification
10. OBJECT-ORIENTED DESIGN PRINCIPLES
10.1. What is a good object-oriented design
10.2. Object-oriented design principles
11. OBJECT-ORIENTED DESIGN
11.1. OO design: steps
11.2. Building interaction diagrams for each scenario
11.3. Building detailed class diagram
11.4. Design the product in terms of clients of objects
11.5. Detailed design
11.6. OO design example
12. PHYSICAL DATA DESIGN
12.1. The physical data design process
12.2. The analysis of data volume and usage
12.3. Data distribution strategies
12.4. File organization
12.5. Indexing
12.6. Integrity constraints
13. USER INTERFACE DESIGN
13.1. Tasks of user interface design
13.2. Manual, batch, and on-line processing
13.3. The design of input documents and reports
13.4. Human-computer interaction
14. IMPLEMENTATION, TESTING, INSTALLING, AND MAINTENANCE
14.1. Programming specifications
14.2. The coding process
14.3. Testing
14.4. The installation (deployment) process
14.5. The system in production phase. Maintenance
15. SOFTWARE PROJECT PLANNING
15.1. Human factors involved in the software development process
15.2. The organization of the software development process
15.3. Other planning activities
15.4. The software project plan

The lectures take the form of PowerPoint presentations and discussions. The students are
invited to read the course material in advance.

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 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).
7. SCHACH, STEVEN R.: Object-Oriented and Classical Software Engineering, McGraw-Hill, 5th ed., 2002.
8. SOMMERVILLE, IAN: Software Engineering, Addison-Wesley (5th ed. 1996, 6th ed. 2000).
9. Agile Modeling Homepage, [http://www.agilemodeling.com].
10. Software Engineering Body of Knowledge, IEEE, 2004. [http://www.swebok.org].
Assessment
The assessment method is written exam, consisting of two modeling problems, covering
analysis and logical design. The final mark (on a 10-points scale, one point by default) is computed as follows:
a) Seminar activity: 2 pts
b) Written exam:
1. Analysis problem: 3 pts
2. Logical design problem: 4 pts