MID0007 | Software Engineering |
Teaching Staff in Charge |
Prof. PÂRV Bazil, Ph.D., bparvcs.ubbcluj.ro Lect. LAZAR Ioan, Ph.D., ilazarcs.ubbcluj.ro Lect. CHIOREAN Ioan Danut, Ph.D., chioreancs.ubbcluj.ro Lect. DARVAY Zsolt, Ph.D., darvaycs.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 and operation: 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 Requirements analysis process Starting requirements analysis Communication techniques Requirements synthesis Requirements specification Requirements validation 6. ANALYSIS MODELING Definitions, steps, elements, methods Use case modeling Static modeling Dynamic modeling Data flow modeling 7. SOFTWARE DESIGN: CONCEPTS AND MODELS Fundamentals of software design Design steps Design concepts Design models 8. PRINCIPLES OF O-O DESIGN Architecture and dependencies Class design: principles Architectural design: principles (module reuse, module coupling) Arhchitectural patterns 9. DESIGNING ARCHITECTURE, DATA, AND PROCESSES Architecture design. Software components Data design Process design 10. COMPONENT DESIGN Logical architecture of the software system Responsibility-driven design OO design: steps 11. USER INTERFACE DESIGN Human-computer interaction Interface design rules User interface models User interface construction 12. SOFTWARE TESTING: TECHNIQUES AND METHODS Verification and validation Software testing: steps and techniques Testing methods 13. DEPLOYMENT Packing and installing Software maintenance 14. SOFTWARE PROJECT PLANNING 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. Case study: requirements analysis (1) - general requirements communication techniques tehnici de comunicare.doc the requirements specification document: speccerinte.doc 2. Case study: requirements analysis (2) - conceptual data modeling 3. Case study: requirements analysis (3) - process modeling 4. Case study: Object-oriented requirements analysis 5. Case study: design (1) - logical data modeling and process design 6. Case study: design (2) - OO design 7. Full case studies Lab activities The students are requested to complete three mini-projects referring to incremental changes of an existing software system. The course notes are PowerPoint presentations. The students are invited to read the course material in advance. The course and seminar materials, as well as other informations are available on the Win server, in the folder win\labor\romana\an2\iss |
References |
1. FLAATEN, P.O., MCCUBBREY, D.J., O'RIORDAN, P.D., BURGESS, K.: Foundations of Business Systems, Dryden Press, 1st ed. 1989, 2nd ed. 1997.
2. FOWLER, M., SCOTT, K.: UML Distilled: A Brief Guide to the Standard Object Modeling Language, Addison-Wesley, 2nd ed., 1999. 3. IACOBSON, I., BOOCH, G., RUMBAUGH, J.: The Unified Software Development Process, Addison-Wesley, 1999. 4. MARTIN, R.C.: Agile Software Development: Principles, Patterns, and Practices, Prentice Hall, 2002. 5. PÂRV, B.: Analiza şi proiectarea sistemelor, Univ. Babeş-Bolyai, CFCID, Facultatea de Matematică şi Informatică, Cluj-Napoca, 2002, 2003, 2004. 6. PRESSMAN, R.S.: Software Engineering - A Practitioners Approach, McGraw-Hill, 3rd ed. 1992; 4th ed. 1996, 5th ed. 2001, 6th ed. 2005. 7. SCHACH, S.R.: Object-Oriented and Classical Software Engineering, McGraw-Hill, 5th ed., 2002, 6th ed. 2005. 8. SOMMERVILLE, I.: 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 activities are:
2 quizzes during lectures (10%) 3 programming projects (45%) written midterm exam (20%) written final exam (25%) The final mark is computed as weighted average of the individual marks obtained. (the weights are given in brackets). Exam and quiz questions refer to the teaching material and mandatory readings. Programming projects involve small incremental changes to an existing open source project. |
Links: | Syllabus for all subjects Romanian version for this subject Rtf format for this subject |