Subject: Systems Analysis and Design	Code: MI010	

Semester	 Hours: C+S+L	Type	 Section	
5	2+2+0	compulsory	Computer Science	
5	2+2+0	compulsory	Mathematics-Computer Science	
5	2+2+0	compulsory	Applied Mathematics	

Teaching Staff in Charge	Prof. PÂRV Bazil, Ph.D., bparv@cs.ubbcluj.ro
Lect. CHIOREAN Ioan Danut, Ph.D., chiorean@cs.ubbcluj.ro
Lect. LAZAR Ioan, Ph.D., ilazar@cs.ubbcluj.ro
Lect. KOVACS Lehel, klehel@cs.ubbcluj.ro
Asist. PETRASCU Dragos, petrascu@cs.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  ..	
Selective 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.