Topic outline
- General
- Software Engineering
Software Engineering
Software Engineering
_________________________________________________________________
Realized by :
Dr. KOUAH SOFIA, Lecturer at University of Oum El Bouaghi
------------------------------------
Pedagogic Objectives:

- General purpose: Learn to apply an analysis and design methodology for software development. In particular, learn object modeling with the universal UML language.
- Also, the course aims to :
- Introduce the basic concepts and definitions of software engineering, such as software, software process, software quality, and software lifecycle.
- Explains the importance of modeling in software engineering and introduce the Unified Modeling Language (UML) as a standard notation for modeling software systems.
- Present the basic elements of UML.
- Present the Functional View and use case diagram which describes the functional requirements of a system from the perspective of the users (actors).
- Describe the static view, and class diagram and object diagram, which are UML diagrams that represent the static structure of a system in terms of classes and objects.
- Present the dynamic view, and the UML diagrams that depict the dynamic behavior of a system, such as the sequence diagram, the communication diagram, the state machine diagram, and the activity diagram.
- Present other UML concepts and diagrams such as introducing some other UML concepts and diagrams that are useful for modeling software systems, such as components, deployments, composite structure diagram.
- Provide an overview of some popular development methods such as RUP and XP.
- Describe Design patterns and their place in the development process and present some examples of well-known design patterns.
------------------------------------------------------------------------------------------
Target Audience:
3rd year computer science degree students, specializing in Information System (I.S.)
----------------------------------------------------------
Prerequisites:
Algorithmics, Information Systems, Object-oriented Programming.
----------------------------------------------
Pre-test
This test aims to measure the degree of mastery of the objectives planned by the designer.
-------------------------------------------
Course Overview:
This course covers the main principles of software engineering. It introduces the standard ULM (Unified Modeling Language) software modeling and other features. Chapters include functional and static views, dynamic view, and other UML concepts. In addition, they explore development methodologies such as RUP as well as integrating software design patterns into the development process. By studding thus content, students can gain s solid foundation in software engineering and UML based modeling skills to provide efficient software systems.
-----------------------------------------------
Course Outline:
- Chapter 1. Introduction
- Chapter 2. Modeling with UML
- Chapter 3. UML Use Case Diagram: Functional View
- Chapter 4. ULM diagrams of classes and objects: static view
- Chapter 5. UML diagrams: dynamic view
- Chapter 6. Other UML concepts and diagrams
- Chapter 7. Introduction to development methods: (RUP, XP)
- Chapter 8. Design patterns and their place in the development process
-----------------------------------------------
Assessment Method:
- Continuous assessment for supervised works and Tutorial: 40%
- Final Exam: 60%
For supervised works:
- 15 points for the examinations (at least two examinations)
- 5 points for attendance and participation
For Tutorials:
- 10 points for the in-person practical test
- 5 points for a mini-project
- 5 points for attendance and participation
- CHAPTERS in English
CHAPTERS in English
Part 1 : Multiple choice questions
1) What is a Software?
a) A Software is a computer program.
b) A Software is all the programs, documentation and configuration of a computer system
c) A Software is a set of instructions for a computer.
2) What are the main phases of software life cycle:
a) The software life cycle generally includes the phases: Design, code, test, maintenance
b) The software life cycle generally includes the phases: Requirements analysis, design, implementation, testing, deployment
c) The software life cycle generally includes the phases: Planning, development, quality control, release into production
3) UML is a standardized language which allows
a) Coding programs
b) Modeling software systems
c) Automatically generating code
Part 2: Short answer question
1) Discuss Software Crisis.
2) What is Software Engineering?
3) Provide two advantages of modeling in software engineering
4) Provide three criteria for the software quality evaluation.
5) Give two types of UML diagrams which model the static aspects of a system.
6) Give two types of UML diagrams which model the dynamic behavior of a system.
7) What is the main interest of UML modeling in software engineering ?
8) What is a UML package?
9) A package can contain: a) Classes b) Other packages c) Diagrams d) Use cases
Part 1: Short Questions
1) What is the main objective of the use cases diagram?
2) What are the main elements of use cases diagram?
3) Provide the between a primary and secondary actor?
4) Provide the different kinds of relationships between use cases.
Part 2: Exercise (Cash register)
We want to model the normal procedure for cash register utilization, described as followa:
1. A customer arrives at the register with items.
2. The cashier scans the identification number of each item, as well as the quantity if it is greater than 1.
5. The checkout displays the price of each item and its description.
6. When all items have been checked in, the cashier signals the end of the sale.
7. Checkout displays total purchases.
8. The customer chooses a payment method:
- Cash: the cashier collects the money and the cash register indicates the possible amount to be returned to the customer
- Check: the cashier notes the identity of the customer and the cash register records the amount on the check
- Credit card: a bank terminal is part of the cash register, it transmits the request to a multi-bank authorization center
9. The cash register records the sale and prints a receipt.
10. The cashier transmits the printed receipt to the customer.
11. A customer can present discount coupons before payment.
12. When payment is complete, the register transmits information about the items sold to the inventory management system.
13. Every morning, the store manager initializes the checkouts for the day.
Questions:
1) Identify actors, uses cases and relationships (justify your answer)
2) Elaborate the corresponding uses cases diagram.
Part 1: Short Questions
1) Provide the graphical representation of a class in a UML class diagram?
2) Provide the different kinds of associations between UML classes.
3) What is the objective of the multiplicity in Class diagram?
4) What is an abstract class? what is an abstract class?
5) Provide the graphical representation of an object in a UML object diagram?
6) How can we represent the state of an object?
Part 2: Exercise (school buses and the drivers)
In a transport company, we would like to manage the school buses and the drivers.
A high school student, who is a child, is characterized by his name, age and sex. The driver has the same characteristics as high school student, moreover, he has a license number. As for the bus, we need to know its registration number, its date of entry into service, number of years of service, and total weight. A bus is made up of a body (weight, color), 6 wheels (pressure, diameter), several seats (color) for passengers, several windows (thickness, weight).
Questions:
1) Provide the corresponding class diagram.
2) Propose an object diagram that satisfy the class diagram developed in the previous question.
3) Propose an object diagram that do not satisfy the class diagram, explain why?.
Part 1: Short answer questions
1) What is the objective of sequences diagram?
2) How is represented time in sequences diagram?
3) What are the main components of sequences diagram?
4) Explain the difference between synchronous and asynchronous messages in a sequences diagram.
5) What it is the role of fragments in sequences diagram, give examples?
6) What can a communication diagram represent?
7) What is the difference between sequences and communication diagrams?
8) What is the objective of activity diagram?
9) How do we represent the start and end of an activity?
10) How do we model a choice or decision in activity diagram?
11) How do we represent synchronization in activity diagram?
12) What are the main components of State Chart diagram?
13) Provide an advantage of State Chart diagram.
14) What is the difference between Activity and State Chart Diagrams?
Part 2:
Exercise 1:

Figure 1: Class Diagram of Simple Watch ((umltd4.pdf (free.fr))
.From the class diagram of the Figure 1:
1) Provide a sequence diagram to model a scenario where a user would like to set the time (specifically the minutes) on their watch.
2) Provide a communication diagram from the resulting sequence diagram.
3) Develop the corresponding State Chart Diagram.
Note: By pressing button 1 twice, you access the minute setting (hour flashes then minute flashes). Then with button 2 (without releasing the button) it increments the minutes; the LCD display is refreshed. By pressing button 1 again the time is saved and the display stops flashing.
Exercise 2: Chocolate mousse (UML2 by practice, P. Roques)
Here is the recipe for making a good chocolate mousse:
• Start by breaking the chocolate into pieces, then melt it.
• At the same time, break the eggs, separating the whites from the yolks.
• When the chocolate is melted, add the egg yolks.
• Beat the egg whites until they are very stiff.
• Gently incorporate them into the chocolate mixture without breaking them.
• Pour into individual ramekins.
• Chill for at least 3 hours in the refrigerator before serving.
Question: Establish the activity diagram to model the recipe.
Part 1: Short answer questions
1) What is the main objective of components diagram?
2) How do we represent dependencies between components?
3) What are the main components of deployment diagram?
4) Describe the difference and the relationship of component and deployment diagrams.
5) What is the main objective of a composite structure diagram?
6) A component can be decomposed into sub-components, True or False?
7) Give 2 examples of elements that can be modeled by a composite structure diagram.
Part 2: Exercise
1) Consider the following diagram:

a) What it this diagram? What is its role?
b) Describe its components briefly and indicate what it represents?
2. Consider the following diagram:

a) What it this diagram? What is its role?
b) Describe its components briefly and indicate what it represents?
Part 1: Short answer questions
1) What is a design pattern?
2) What is the advantage of using design patterns?
3) Give 3 categories of design patterns.
Part 2: Exercise
Let consider two classes: a Program1 class which simply displays a message when you call the method go() and a Client class which calls Program1.
public class Client
{ public static void main1( ) {
Program1 p = new Program1();
System.out.println("Je suis le main1");
p.go(); }
public static void main2( ) {
Program1 p = new Program1();
System.out.println("Je suis le main2");
p.go(); }
public static void main3( ) {
Program1 p = new Program1();
System.out.println("Je suis le main3");
p.go(); } }public class Program1
{ public Program1() { // constructeur vide
}
public void go()
{ System.out.println("Je suis le traitement 1"); } }The class diagram looks like this:

We want to add three classes Program2, Program3 and Program4 to our system. These classes will display the same message on the screen as Program1, except that they will display their program number (2, 3 or 4). Add these classes (by duplicating and modifying the code from Program1). In the client, we want to modify the code of the main functions so that, depending on the integer parameter passed to them as an argument (1, 2, 3 or 4), they launch the processing of Program1, Program2, Program3 or Program4. We suggest you applying the design pattern factory.
Questions:
1) Justify why factory pattern is the appropriate pattern in this case.
2) Provide the java code and the corresponding class diagram.
- Supervised Works
- Tutorials
- Chapitres En Francais
- Travaux Dirigés Francais
- Revision
- DEVOIR A rendre 9 Janvier 2022
- Notes Examen GL
- TP
TP
Recommandation :
- Veuillez enregistrer les solutions (Diagramme + Code) sous forme d’un fichier PDF comportant le nom, le prénom et le groupe, afin d’éviter tout problème.
- Cela ne remplacera pas la solution sous Modelio et Eclipse.
Faites Attention aux Copier/Coller, c'est un travail INDIVIDUEL !!!
BON COURAGE
Veuillez télécharger le framework Modieo depuis le lien ci-dessous et l'installer sur vos PC.
Si vous avez des PCs, veuillez les apporter SVP. Sinon, vous télécharger les deux versions de modelio (32 et 64 bits) et les apporter pour mieux travailler sur les PCs de la salle.
Lien: https://www.modelio.org/downloads/download-modelio.html
Bon courage
- Notes Rattrapage
- Divers
Divers
- Chers étudiants, veuillez envoyer votre TP (Fichier PDF ou word) sur l'adresse mail suivante :
sofia.kouah@univ-oeb.dz
Dernier délai: le vendredi à 17h: 00 .
Veuillez indiquer le nom, prénom, groupe.
Bon courage. - Chers étudiants,
Des séances de récupérations, pour la matière GL sont programmées comme suit :Lundi 19/12/22 : 11- 12 :30Mardi 20/12/22 : 11- 12 :30Lieu : k 15.Bon courage. - Les étudiants de 1 jusqu'à 20
- Les étudiants de 1 jusqu'au 20.
- Examen 2023
- Examen 2022
- Examen 2021
- REFERENCES