Post on 09-Apr-2017
MedTech
Software EngineeringMain Notions, Lifecycle
Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 1
MedTech – Mediterranean Institute of TechnologySoftware Engineering
MedTech
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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 2
Software Engineering
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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 3
Software Engineering
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
• Tra ining of educators in Rabat, Esprit University, Supcom/Isetcom
• Tra ining of students in INSAT, Esprit University, V irtual 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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 4
Software Engineering
MedTech
Speaker Disclosure
Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 5
Software Engineering
136,189
108
9,474
90
MedTech
Summary of the Course
• Software Engineering: An introduction• Importance of Software Development• Definitions
• Software + Engineering• Software Engineering
• Attributes of a good Software• Key Challenges
• SDLC: Software Development Lifecycle• Definition and Actors• Steps
• Requirements Analysis• Design• Implementation• Testing• Release
Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 6
Software Engineering
MedTech
SOFTWARE ENGINEERING: AN INTRODUCTIONSoftware Engineer ing
Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 7
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 8
Software Engineering: An Introduction
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 9
Software Engineering: An Introduction
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 10
Software Engineering: An Introduction
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 11
Software Engineering: An Introduction
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 12
Software Engineering: An Introduction
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 13
Software Engineering: An Introduction
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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 14
Software Engineering: An Introduction
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 15
Software Engineering: An Introduction
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 trivia l (like game playing) or extremely serious (like the dissemination of viruses)
• See the ACM/IEEE Code of Ethics!
Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 16
Software Engineering: An Introduction
MedTech
SDLC: SOFTWARE DEVELOPMENT LIFECYCLESoftware Engineer ing
Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 17
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 18
SDLC: Software Development Lifecycle
Customer
Developer
Tester
Designer
Team
Project Manager
MedTech
SDLC : Steps
Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 19
SDLC: Software Development Lifecycle
RequirementsAnalysis
Design
ImplementationTesting
Release
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 20
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
MedTech
Step 2 : Design
• Focus on the “How”• Break the problem into smaller pieces
• Components
• End Result: Design Specification
• Reviewed by:• Designer, Developer
Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 21
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 22
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 23
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 24
SDLC: Software Development Lifecycle
R.A.
Design
CodeTest
Release
MedTech
SDLC Challenges
Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 25
SDLC: Software Development Lifecycle
MedTech
References
Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi
Sl id e 26
• L. Bonilla, Introduction to Software Engineer ing, Mentorpick.com, 2009
• Mr. Jackman's Computer Programming Class, Software Development L ifecycle , https://www.youtube.com /watch?v=9STHYg7igIQ , consulted the 22nd sept. 2016
• Recommanded Readings• I. Sommerville, Software Engineering (6th edition), Addison Wesley
Publishing Company , 2000
• H Gomaa, Software Modeling and Design: UML, Use Cases, Patterns and Software Architectures