Systems analysis and design

Course Code: MI 101 • Study year: I • Academic Year: 2024-2025
Domain: Computer Science - Masters • Field of study: Advanced programming and databases
Type of course: Compulsory
Language of instruction: English
Erasmus Language of instruction: English
Name of lecturer: Ovidiu Domsa
Seminar tutor: Ciprian Ioan Cucu
Form of education Full-time
Form of instruction: Class / Seminary
Number of teaching hours per semester: 56
Number of teaching hours per week: 4
Semester: Autumn
Form of receiving a credit for a course: Grade
Number of ECTS credits allocated 8

Course aims:

Abilities to develop and manage all stack for software solutions development, information’s structuring, storing, processing, documentation and date description.
Develop project management skills
To know different tools for systems analysis, design and project management

Course Entry Requirements:

Software engineering

Course contents:

1. Introduction to software engineering

1.1 Development of software systems

1.2 Software engineering features

1.3 Notes on the development of a software product
2. The life cycle of a software product

2.1 Phases of the life cycle

2.2 Cascade models

2.3 Iterative models

2.4 Extreme Programming Methodology
3. Requirements engineering

3.1 Specific issues

3.2 Types of requirements

3.3 Requirements analysis

 3.4 Specification of requirements
4. Software modeling

4.1 Modeling languages

4.2 Structured modeling

4.3 Object Oriented Modeling

4.4 UML Language
5. Designing software systems

5.1 Software architectures

5.2 Characteristics of a software system

5.3 Architectural Styles

5.4 Architectural models
6. Development of software systems

6.1 RAD

6.2 Incremental development

6.3 Prototyping

6.4 Agile methods

6.5 Development cycle in extreme programming

 6.6 Reuse in the development of a software system
7. Testing and validation

7.1 Verification and Validation Process

7.2 Static and dynamic verification

7.3 Testing and debugging

7.4 Planning the test

7.5 Static analysis

 7.6 Testing and validating systems
1.       Project management technique

8.1. Gannt diagram

8.2. Resource management

8.3. Cost management

8.4. Agile technique

8.5. Project documentation
9.       Case study

Teaching methods:

Lecture, conversation, exemplification

Learning outcomes:

Explain basic concepts in the field of software engineering and process stages

software development to describe and compare models of software development processes

Analyze user requirements, identify solutions, compare and select tools appropriate software to resolve a given issue. Use proper UML core charts (UC, activity, classes, sequences, states) in system analysis and design

software.

To argue the importance of the field software engineering and ethical principles of the engineering profession software. Develop a correct relationship with clients.

Learning outcomes verification and assessment criteria:

Project presentation and laboratory assignment grades.

Recommended reading:

McConnell Steve, Code Complete, Microsoft Press, NW, 2004, 546.
OTERO, C.E, Software Engineering Design, CRC Press, MIT, 2012, 100.
BASS, L., CLEMENTS, P., KAZMAN R.:, Software Architecture in Practice, 2nd ed, Addison-Wesley, US, 2003, 421.