Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ENGINEERING - I
Lecture 1
SLIIT
Session outcomes
Introduction to Module
SE- Introduction
SE Process - Introduction
SLIIT
MODULE
INTRODUCTION
SLIIT
Module contents
Course web
General
Module outline
Notices
Marks
Weekly updates
Lecture
Lab
Tutorial
Additional Reading
SLIIT
Learning outcomes
Understand what software engineering is and relate it to other disciplines.
scenario.
Describe the requirement engineering process and to write a formal requirements
document for a software project.
Use UML such as Use Case Diagrams and Use Case Scenarios to capture
requirements of a System.
Demonstrate how requirements gathering can be carried out accurately and
consistently making use of structured analysis using data flow diagrams.
Design an appropriate set of modules from a structured analysis, and communicate
them in the form of a structure chart.
Use a dictionary-based CASE tool (e.g. WinA&D).
Describe and compare different testing strategies used in software development.
Develop an understanding of project management and to apply the project
management concepts in software development.
Compare and contrast different modern software development methodologies.
SLIIT
Assessment Criteria
Mid-term (1 hour duration)
Assignment
Final Examination
(3 hours duration)
- 20%
- 10%
- 70%
SLIIT
Assignment
Pair wise assessment
Randomly chosen case study
Two submissions
Before Mid term
Based on requirements engineering and use
case diagrams
After Mid term
Based on DFD and Structure charts
SLIIT
Lab Schedule
Time
Lessons
Labs
Week 1
PS
Week 2
PS
Week 3
PS
Week 4
SE lab 1 (Decision
tables)
Week 5
Week 6
Week 7
Mid-Term Examination
Week 8
PS
Week 9
PS
Week10
PS
Week 11
Project Management
SE lab 3 (DFD)
Week 12
Week 13
Revision
SE lab 5 ( PM )
Final Exam
SLIIT
SE- INTRODUCTION
SLIIT
10
SLIIT
11
What is Software?
S/W is not just the programs, but also associated
SLIIT
12
SLIIT
13
Small in size
Limited Functionality
Single user (author)
Simple user interface
Sparse documentation
No user manual
Ad hoc development
Software Product
Large
Team of developers
Multiple users
(customer)
Complex user interfaces
Detailed documentation
User manual
Systematic development
SLIIT
14
SLIIT
15
SLIIT
16
Software Engineering
IEEE Definition of Software Engineering:
SLIIT
17
SLIIT
Developing a Program
Analyze the problem
Develop a solution
Code the solution
18
SLIIT
19
SLIIT
20
Characteristics of Software
Engineering
Software Engineering deals with team-based
SLIIT
21
SLIIT
22
SLIIT
23
mobile phones
games consoles
SLIIT
24
SLIIT
25
SLIIT
26
software developer:
higher productivity;
lower cost;
better quality.
SLIIT
27
SLIIT
28
Quality of Software
Depending on the type of software project the
SLIIT
29
SLIIT
30
SLIIT
31
programming
Early 1970s: Data Structure Design
Late 1970s: Structured Analysis
SLIIT
32
SLIIT
33
Modern SE Techniques
In addition to software design, many other SE
SLIIT
34
phases
There is a lot of emphasis on requirements
software development.
There is a distinct, systematic testing phase.
SLIIT
35
Modern SE Techniques
The Software Life Cycle
A series of phases through which a software
Design;
Implementation (coding);
Testing;
Maintenance.
each phase.
SLIIT
36
Modern SE Techniques
The Software Life Cycle
Emphasis has shifted from error correction to
error prevention:
exploratory methods focused on detecting errors only
during testing;
modern methods focus on detecting errors in each
phase of development.
Phase containment: detect errors as close as
possible to their point of introduction Reduces the amount of work that must be re-done.
Process.
SLIIT
37
SE PROCESS MODELS
INTRODUCTION
SLIIT
38
SLIIT
39
Software Processes
Different types of projects would require different
developed together.
SLIIT
40
SLIIT
Software Evolution
41
SLIIT
42
SLIIT
43
SLIIT
44
SLIIT
45
SLIIT
46
SLIIT
47
Software Development
Methodologies
The processes, standards and guidelines used by
house methodology;
this means YOU!
SLIIT
48
Design
Implementation (Coding) & Unit Testing
Integration & System Testing
Maintenance
SLIIT
49
WATERFALL LIFE
CYCLE MODELS
SLIIT
50
SLIIT
51
Feasibility Study:
Aims :
To determine whether the project is financially
SLIIT
52
Feasibility Study
A Cost/Benefit Analysis can be used to decide
feasible due to
Resource Limitations
Technical Difficulty
High Cost
Long Development Time (e.g. for a Y2K fix)
SLIIT
53
SLIIT
54
discussions:
this information is typically inadequate at first each
analysis of information.
SLIIT
55
SLIIT
56
Requirements Specification
Requirements are documented in a Software
SLIIT
57
SLIIT
58
Diagrams (DFDs)
1.
2.
3.
4.
SLIIT
59
SLIIT
60
correctly in isolation.
The end product of this phase is a set of
SLIIT
61
planned steps.
Integrating modules one at a time makes error
location and correction much easier:
it would be foolish to integrate several different modules
SLIIT
62
SLIIT
63
SLIIT
64
waterfall model.
The resulting Iterative Waterfall Model is one of
SLIIT
References
Essential Reading:
Fundamentals of Software Engineering
by Rajib Mall - Chapter 1 & 2
Software Engineering
Pfleeger Chapter 1;
65
SLIIT
Next Lecture
66