Anda di halaman 1dari 18

Software Engineering

(SE)

Tiberiu Leia: Software Engineering Introduction

Contents
Introduction to Software Engineering
I. Java Language Programming
II. Design of Control Application Using UML
III. Project of Control Applications
Assessment:
N = 0.33*P + 0.33*E + +0.33*L
P ? ; N = 0.66*E + +0.33*L
P5, E5, L5
Tiberiu Leia: Software Engineering Introduction

Course: Software Engineering Presentation


Course Description
The course is designed specifically for control systems engineers.
It shows the relevance of modeling techniques for control system engineering activities on a
variety of projects.

Course Objectives
To explain the development approaches of control applications
To provide an understanding of the principles and concepts inherent in software design.
To describe the structure and content of modeling.
To enable attendees to apply UML modeling techniques.
To conceive control applications

Tiberiu Leia: Software Engineering Introduction

Attendees Will Learn


The main design and implementation approaches of control applications
Essential UML concepts, terminology and notation.
The purpose and use of all UML diagrams.
How UML diagrams are organized and the relationships between diagrams.
How to create UML models using Star UML.
How UML models can feed into software design and the relations with the control algorithms.
To implement all the UML diagrams.
How to conceive control applications.

Tiberiu Leia: Software Engineering Introduction

Pre-requisites
Java Programming
Related Courses
Object Oriented Programming Java language.
Introduction

The purpose, structure and benefits of UML.


The relationship between UML diagrams and Java code.
Key UML concepts used in software design.

Tiberiu Leia: Software Engineering Introduction

I. Java Language Programming


1. Introduction to Java Language
origins and evolution
extensions
characteristics
2. Programming Basic Elements
stand alone applications and applets
names and identifiers
Java program structure
data types
arrays
operators
flow execution control
Tiberiu Leia: Software Engineering Introduction

3. Object Oriented Programming


objects
classes
fields
methods
constructors
domain and visibility
creation and destruction of objects
inheritance
aggregation
abstract classes
interfaces
polymorphism
interior and exterior classes
interior classes in methods
Tiberiu Leia: Software Engineering Introduction

object and primitive data casting


comparison of objects
find the name and the class of an object
3. Access Control
goal and control manner
4. Object management
classes for storing objects (Vector, Stack, BitSet etc.)
containers
complex arrays (Arrays, Array)
collections
lists
comparison of objects and ordering of lists with objects
mappings

Tiberiu Leia: Software Engineering Introduction

5. Exceptions
concepts
creation, throwing and handling
6. Input/output Programming
streams
operation based on System class
byte flows
data flow
character flow
serialization of objects
token separation

Tiberiu Leia: Software Engineering Introduction

7. Graphical Interface Programming


awt classes
swing classes
event handling
layout
drawing
simulation
applets
applet communication
8. Multithreading Programming
thread creation
thread control
scheduling
thread intercommunication
Tiberiu Leia: Software Engineering Introduction

10

II. Design of Control Applications using UML


1. Class and Object Diagrams
2. Implementation in Java of class and object diagrams
3. Specification of control application
4. Context Diagrams
5. Use-cases diagrams
6. Sequential Diagrams
7. State Diagrams
8. Activity Diagrams
III. Projects of Control Applications

Tiberiu Leia: Software Engineering Introduction

11

1. Introduction to SE
Definition: Software engineering contains:
the design, development, documentation and maintenance of software by
applying technologies and practices from computer science
project management
interface design
digital asset management etc.
They were based on:
programming and
system analysis
The links with control applications were weak.
Engineering involves a discipline for program design development. It is
unlike the art.
Tiberiu Leia: Software Engineering Introduction

12

SE Objectives
Software engineering concern with:
conception,
development and
verification.
The construction of control applications involves also the description
and modeling of controlled systems plus the links between the control
and controlled components.
To achieve the software results it deals with:
identifying (problem, or application)
defining (application)
realizing and
verifying the required characteristics of the software results
Tiberiu Leia: Software Engineering Introduction

13

The software characteristics may include:


functionality
reliability
maintainability
availability
testability
easy-of-use
portability
linking with controlled processes and
other attributes
SE is necessary for products and situations where high reliability is
expected (such as control and monitoring of complex plants).

Tiberiu Leia: Software Engineering Introduction

14

Software technologies:
compilers
code repository
word processors
Controlled system technologies:
modeling
simulation
Practices:
pair (team) programming
code and control algorithms reviews and
daily stand up meetings

Tiberiu Leia: Software Engineering Introduction

15

Comparison: Engineering process and Scientific method


Engineering Process
1. Define a need what the user of the
product need
2. Do background research Investigate
what other have already learned about the
desired product
3. Prepare preliminary design
4. Build a prototype
5. Test and analyze the prototype
6. Analyze the product and redesign if it
is necessary
7. Present results

Tiberiu Leia: Software Engineering Introduction

Scientific method
1. State a question
2. Do background research Is any
similar approach of the subject
3. Formulate hypotheses, identify
variables and differences
4. Design an experiment and establish a
procedure
5. Test the hypotheses by doing
experiments
6. Analyze your results and draw
conclusions
7. Present results

16

Programming methodology transition from basic programming skills


to rigorous process and software development
Software engineering processes, tools, techniques and quality assurance:
life cycle models
process modeling
requirements analysis
specification techniques
quality assurance techniques
verification and validation
testing
project planning and management
How are these applied to the technical process control?

Tiberiu Leia: Software Engineering Introduction

17

*
****
***END***
****
*

Tiberiu Leia: Software Engineering Introduction

18

Anda mungkin juga menyukai