Computer 10: Lesson 10 - Online Crimes and Hazards
Software Engineering - chp0- introduction
1. MedTech
Software Engineering
Main Notions, Lifecycle
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
MedTech – Mediterranean Institute of Technology
Software Engineering
MedTech
2. MedTech
Speaker Disclosure
• Dr. Lilia Sfaxi
• Associate Professor in INSAT
• Researcher in LIP2 Laboratory, MASTER team
• PHD in Computer Science from the University of Grenoble
and Science Faculty of Tunis
• Software Engineering Degree from INSAT, University of
Carthage
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 2
Software Engineering
3. MedTech
Speaker Disclosure
• Research Field : Big Data Area
• Big Data & Decisional Systems
• Big Data Systems’ Methodology
• Teaching : Main Focus on New Technologies
• Big Data
• Business Intelligence
• Mobile Applications
• Service-based Architectures (SOA, WOA, Microservices, API
Management…)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
Software Engineering
4. MedTech
Speaker Disclosure
• Certifications
• ITIL (Information Technology Infrastructure Library) V1
• IBM Mobile Application Specialist (Worklight)
• IBM Big Data Specialist (BigInsight)
• Other Activities
• IBM trainer in Mobile Development
• Training of educators in Rabat, Esprit University, Supcom/Isetcom
• Training of students in INSAT, Esprit University, Virtual University of Tunis
• Teacher in the Virtual University of Tunis (UVT)
• Mobile Application Development (Android) for 2nd year Professional Master in
Open Source Software (MP2L)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 4
Software Engineering
8. MedTech
Importance of Software
• Software is everywhere!
• The economies of all developed nations are dependent
on software
• Software costs often dominate system costs
• Software costs more to maintain than to develop!
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
Software Engineering: An Introduction
9. MedTech
Definitions: Software
• Computer Programs + Associated Documentation
• Can target:
• A particular customer: bespoke/customized software
• The general market: generic software
• Software products are:
• Intangible
• Complex
• Flexible
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Software Engineering: An Introduction
10. MedTech
Definitions: Software Engineering
• Engineering
• Action of defining and sequencing necessary tasks for the
creation of a new product or service
• Software Engineering
• Engineering discipline concerned with all aspects of software
production
• Captures the customers’ business needs and specify the
blueprints for the system, so that programmers can implement it
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Software Engineering: An Introduction
11. MedTech
Definitions: Software Engineering
Software Engineering is the application of a
systematic, disciplined, quantifiable approach to the
development, operation and maintenance of
software
IEEE’90
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Software Engineering: An Introduction
12. MedTech
Definitions: Software Engineering
Software Engineers must:
• Adopt a systematic and organized approach to their work
• Use appropriate tools and techniques
… depending on:
• The problem to be solved
• The development constraints
• The available resources
... with a given budget
... before a given deadline
... while changes occur!
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
Software Engineering: An Introduction
13. MedTech
A good software …
• delivers the required functionality and performance to the
user
• is maintainable : evolves to meet changing needs
• is dependable : must be trustworthy and secure
• is usable by its users
• is efficient : should not make wasteful use of system
resources
• is reusable: can be reused in another form or for other
purposes
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
Software Engineering: An Introduction
14. MedTech
Skills of a Software Engineer
• A software engineer is not (only) a developer!
• “ It is not enough to do your best: you must KNOW what to do, THEN do your
best”
W. Edwards Deming
• Aside from the technical skills, a software engineer must have other
skills :
• Communication
• Feedback
• Motivation
• Analytical
• Planning
• Risk assessment
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
Software Engineering: An Introduction
15. MedTech
Key Challenges
• Need to master both the technical and business problems
• Software is formal, while the real world is informal
• Coping with legacy systems
• Old valuable systems must be maintained, not systematically replaced
• Increasing diversity
• Consider the set of mixed and heterogeneous hardware and software
involved in the same system
• Increasing demands for reduced delivery time
• Ethical Responsibility!
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 15
Software Engineering: An Introduction
16. MedTech
Key Challenges: Ethical Responsibility
• Behaving in a honest and ethically responsible way in order to be
respected
• Respect of the confidentiality of the client’s information
• Competence: avoid to misrepresent your competence by accepting a
task you cannot do
• Intellectual Property rights: respect of patents, of copyrights
• Computer misuse: the employer’s computer must be properly used
• Whether the misuse is trivial (like game playing) or extremely serious (like
the dissemination of viruses)
• See the ACM/IEEE Code of Ethics!
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 16
Software Engineering: An Introduction
18. MedTech
SDLC : Definition and Actors
• SDLC: Process of creating and altering systems, and the models and
methodologies that people use to develop these systems
• Actors: Mainly (but not only)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 18
SDLC: Software Development Lifecycle
Customer
Developer
Tester
Designer
Team
Project
Manager
19. MedTech
SDLC : Steps
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 19
SDLC: Software Development Lifecycle
Requirements
Analysis
Design
ImplementationTesting
Release
20. MedTech
Step 1 : Requirement Analysis
• Work closely with the customer
• Customer can be
• a client,
• your employer,
• or yourself
• Focus on the “What”, not the “How”
• End Result: Functional Specification
• Reviewed by:
• Customer, Designer
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 20
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
21. MedTech
Step 2 : Design
• Focus on the “How”
• Break the problem into smaller pieces
• Components
• End Result: Design Specification
• Reviewed by:
• Designer, Developer
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 21
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
22. MedTech
Step 3 : Implementation
• Write the code according to design
• In some cases (oddly) the shortest phase!
• End Result: Executable* Application
• Reviewed by:
• Designer, Developer, Tester
* or not…
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 22
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
23. MedTech
Step 4 : Testing
• Verify the code works according to the functional
specification
• Look for corner cases
• End Result: Test Plan, A program that works *
• Reviewed by:
• Designer, Developer, Tester
* hopefully…
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 23
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
24. MedTech
Step 5 : Release
• Close to the customers (again)
• Validate their expectations
• Get feedback for
• Next version
• Maintenance
• End Result: A happy customer and lots of $$$
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 24
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release