Professional Documents
Culture Documents
Introduction to
Software Engineering
Course Outline
2
Software Engineering
3
What is Software Engineering
• Engineering discipline that is concerned with all aspects of software
production.
– Design
– Development
– Maintenance
4
Importance of Software
Engineering?
The importance of Software engineering is as follows:
– Reduces complexity
– Minimizes software cost
– Decreases time
– Handles big projects
– Reliable software
– Effectiveness
5
Required Tasks in Software
Engineering?
• Software engineering task requires:
Ability to quickly learn new and diverse disciplines and business processes
Ability to communicate with domain experts, extract an abstract model of the
problem, and formulate a solution.
Ability to design the software systems for the proposed solution to meet the business
needs for many years.
6
The Role of Software
Engineering
7
The Role of Software
Engineering
8
The Role of Software
Engineering (SE)
Some Misconceptions:
▪ Software engineering is all about Programming
▪ Software engineering is about writing loads of documentation
▪ Software engineering is about writing a running code
•SE is the creative activity of understanding the business problems, coming up with an idea
for solution, and designing the ‘blueprints’ of the solution.
•Programming is the ability of implementing the given blueprints
•SE is helpful to document the process (not the final solution) to know what alternatives were
considered and why particular choice were made.
•SE is about delivering value for the customer, and both code and documentation are
valuable.
9
Introduction: Software is
Complex
Complex ≠ Complicated
Nailing Painting
Setting posts Cutting wood
[ 2 time units for unpainted; [ 5 time units for uncut wood;
[ 3 time units ] [ 2 time units ]
3 time units otherwise ] 4 time units otherwise ]
In what order should these tasks be carried out to complete the project
in the shortest possible time?
12
How ATM Machine Might Work
Domain model
created with help
of domain expert
13
Cartoon Strip: How ATM
Machine Works
14
Software Engineering Lifecycle
• Any product development process includes the following phases:
• Planning/specification
• Design
• Implementation
• Evaluation
15
Software Development Methods
Waterfall – Activities are proceed in a sequential manner, not practical
16
Waterfall Method
proceeds sequentially
finish this step before moving to the next
17
Modeling Languages
• Modeling is the designing of software applications before coding.
• Modeling is an Essential Part of large software projects, and helpful to
medium and even small projects as well.
– Sequence diagram
18
UML – Language of Symbols
UML = Unified Modeling Language
Online information:
http://www.uml.org
19
Requirements Analysis and
System Specification
• Requirement analysis is the first step of software development process.
▪ Use Cases – describes the interaction between the System and Actors
20
ATM: Gallery of Players
23
Domain Model
• Models the inside of the system.
24
How ATM Machine Works (2)
Domain Model (2)
Alternative
solution
How ATM Machine Works (3)
Domain Model (3)
Alternative
solution
Software Design
Recurring issues of software design include:
– Design quality evaluation
– Design for change
– Design for reuse
27
Effort Estimation and Quality
measurement
Formal hedge pruning
28
Sizing the Problem (1)
Step 1: Divide the problem into small & similar parts
Step 2:
Estimate relative
sizes of all parts
Size( ①)=4
Size( ② ) = 7
Size( ③ ) = 10
Size( ④ ) = 3
Size( ⑤ ) = 4
Size( ⑥ ) = 2
Size( ⑦ ) = 4
Size( ⑧ ) = 7
Sizing the Problem (2)
• Step 3: Estimate the size of the total work
❖ After the first iteration you can use the measured velocity to obtain a more
accurate estimate of the project duration 31
Sizing the Problem (3)
• Advantages:
– Velocity estimate may need to be adjusted (based on
observed progress)
– However, the total duration can be computed quickly
(provided that the relative size estimates of parts are
accurate – easier to achieve if the parts are small and
similar-size)
Exponential Cost of Estimation
100
%
Estimation
accuracy
Estimation cost
Estimation
error
35
Summary
36
Conceptual Maps
Concept maps are graphical tools for organizing and representing knowledge and
concepts. Represented by:
▪ circles or boxes of some type, and
▪ relationships between the concepts are connected by lines linking two
concepts.
37
Conceptual Maps
Useful tool for problem domain description
39
Conceptual Maps
40
Conceptual Maps
41
Conceptual Maps
42
Concept Map for Home Access
Control
43
Conceptual Maps
Benefits of Concept Mapping
45