0% found this document useful (0 votes)
2 views18 pages

Software Engineering Course Overview

Uploaded by

kumsakefena2020
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views18 pages

Software Engineering Course Overview

Uploaded by

kumsakefena2020
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Summary of the Course

Software Engineering
• 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
Importance of Software

Software Engineering: An Introduction


• Software is everywhere!
• The economies of all developed nations are dependent on software

• Software costs often dominate system costs

• Computer Programs + Associated Documentation

• Can target:
• A particular customer: bespoke/customized software
• The general market: generic software

• Software products are:


• Intangible
• Complex
• Flexible
Definitions: Software Engineering
Software Engineering: An Introduction
• 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
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation
and maintenance of software

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!
A good software • A
n
• delivers the required functionality and performance to the user a
• is maintainable : evolves to meet changing needs l
y
• is dependable : must be trustworthy and secure
t
• is usable by its users
i
• is efficient : should not make wasteful use of system resources c
• is reusable: can be reused in another form or for other purposes a
l
• P
Skills of a Software Engineer l
• A software engineer is not (only) a developer! a
n
• “ It is not enough to do your best: you must KNOW what to do, THEN n
do your best” i
• Aside from the technical skills, a software engineer must have n
other skills : g
• Communication
• Feedback
• Motivation

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!
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 atask 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
SDLC: Software Development Lifecycle
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) Team

Developer
Project
Manager
Customer Designer

Tester
MedTech

Dr. Lilia SFAXI


Slide 18
[Link]/ liliasfaxi
SDLC : Steps
SDLC: Software Development Lifecycle

Requirements
Analysis

Release Design
Step 1: Requirement Analysis
SDLC: Software Development Lifecycle
• Work closely with the customer
R.A.
• Customer can be
• a client,
Release Design
• your employer,
• or yourself
• Focus on the “What”, not the “How”
Test Code
• End Result: Functional Specification

• Reviewed by:
• Customer, Designer
Step 2 : Design
SDLC: Software Development Lifecycle
• Focus on the “How”
R.A.
• Break the problem into smaller pieces
• Components Release Design

• End Result: Design Specification


Test Code
• Reviewed by:
• Designer, Developer
Step 3 : Implementation
SDLC: Software Development Lifecycle
• Write the code according to design
R.A.
• In some cases (oddly) the shortest phase!
Release Design
• End Result: Executable * Application

• Reviewed by: Test Code


• Designer, Developer, Tester

* or not…
Step 4 : Testing
SDLC: Software Development Lifecycle
• Verify the code works according to the functional
R.A.
specification
• Look for corner cases Release Design

• End Result: Test Plan, A program that works *


Test Code
• Reviewed by:
• Designer, Developer, Tester

* hopefully…

MedTech

Dr. Lilia SFAXI


Slide 23
[Link]/ liliasfaxi
Step 5 : Release
SDLC: Software Development Lifecycle

R.A.
• Close to the customers (again)
• Validate their expectations Release Design
• Get feedback for
• Next version
• Maintenance Test Code

• End Result: A happy customer and lots of $$$


SDLC Challenges
SDLC: Software Development Lifecycle
References

• L. Bonilla, Introduction to Software Engineering, [Link], 2009

• Mr. Jackman's Computer Programming Class, Software Development Lifecycle ,


[Link] , consulted the 22 nd sept. 2016

• Recommanded Readings
• I. Sommerville, Software Engineering (6 th edition), Addison Wesley
Publishing Company , 2000
• H Gomaa, Software Modeling and Design: UML, Use Cases, Patterns and
Software Architectures

You might also like