Software
Engineering
Sameera
Gunathilaka
Lead Software
Engineer
ERP Technical
Consultant
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
1
• Week 7 – Mid exam( 25marks)
• Week 12 – Take home assignment(15 marks)
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
2
The Importance
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
3
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
4
Engineering
Use of science and math to
design or make things
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
5
Software Engineering?
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
6
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
7
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
8
The process of
producing
SOFTWARE
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
9
IEEE defines
software
engineering as:
(1) The application of a systematic,
disciplined, quantifiable approach to
the development, operation and
maintenance of software; that is, the
application of engineering to
software.
(2) The study of approaches as in the
above statement.
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
10
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
11
Software Evolution
The process of
developing a
software product
using software
engineering
principles and
methods is referred
to as software
evolution
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
12
Lehman’s categories of software
S-type (static-type) - This is a software, which works strictly according to
defined specifications and solutions.
P-type (practical-type) - This is a software with a collection
of procedures. The specifications can be described but the solution is not
obvious instantly.
E-type (embedded-type) - This software works closely as the requirement
of real-world environment.
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
13
Software Paradigms
Software paradigms refer to the
methods and steps, which are
taken while designing the
software.
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
15
Software
Development
Paradigm
Requirement gathering
Software design
Programming
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
16
Software
Design
Paradigm
Design
Maintenance
Programming
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
17
Programming
Paradigm
Coding
Testing
Integration
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
18
Need of Software Engineering
Large software - It is easier to build a wall than to a house or building, likewise, as the size of software become large engineering has
to step to give it a scientific process.
Scalability- If the software process were not based on scientific and engineering concepts, it would be easier to re-create new
software than to scale an existing one.
Cost- As hardware industry has shown its skills and huge manufacturing has lower down he price of computer and electronic
hardware. But the cost of software remains high if proper process is not adapted.
Dynamic Nature- The always growing and adapting nature of software hugely depends upon the environment in which user works.
If the nature of software is always changing, new enhancements need to be done in the existing one. This is where software
engineering plays a good role.
Quality Management- Better process of software development provides better and quality software product.
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
19
Characteristics of good software
Operational Transitional Maintenance
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
20
Operational
BUDGET USABILITY EFFICIENCY CORRECTNESS FUNCTIONALITY
DEPENDABILITY SECURITY SAFETY
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
21
Transitional
Portability
Interoperability
Reusability
Adaptability
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
22
Maintenance
MODULARITY MAINTAINABILITY FLEXIBILITY SCALABILITY
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
23
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
24
Talk with people who use the car,
Communication
Gather ideas, interests and trends
Requirement Gathering
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
25
Can we build them?
Feasibility Study
Finalize best model,
Limitations
System Analysis
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
26
Design the parts, car
Software Design
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
27
Develop parts
Coding & Testing
Assemble the car
Integration
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
28
Test run
Implementation
Sell the car
Delivery & Handover
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
29
Maintenance and
Modify
Operation and
Maintenance
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
30
SDLC
• Communication
• Requirement Gathering
• Feasibility Study
• System Analysis
• Software Design
• Coding & Testing
• Integration
• Implementation
• Delivery & Handover
• Maintenance
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
31
Summary
• Engineering vs SE
• Why, What, Where SE
• Software evolution
• Lehman’s categories of software
• Software Engineering paradigm
• Characteristics of a software
• Software life cycle
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
32
History of Software
Engineering
• 1945 to 1965: The origins
• 1965 to 1985: The software crisis
• 1985 to 1989: "No Silver Bullet“
• 1990 to 1999: Prominence of the Internet
• 2000 to 2015: Lightweight methodologies
[Assignment]
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
33
Thank you
IT1204 - Institute of Technology, University of Moratuwa
Sameera Gunathilaka - Software Engineering
34

IT1204- Introduction to software engineering - L1

  • 1.
    Software Engineering Sameera Gunathilaka Lead Software Engineer ERP Technical Consultant IT1204- Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 1
  • 2.
    • Week 7– Mid exam( 25marks) • Week 12 – Take home assignment(15 marks) IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 2
  • 3.
    The Importance IT1204 -Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 3
  • 4.
    IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 4
  • 5.
    Engineering Use of scienceand math to design or make things IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 5
  • 6.
    Software Engineering? IT1204 -Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 6
  • 7.
    IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 7
  • 8.
    IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 8
  • 9.
    The process of producing SOFTWARE IT1204- Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 9
  • 10.
    IEEE defines software engineering as: (1)The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in the above statement. IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 10
  • 11.
    IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 11
  • 12.
    Software Evolution The processof developing a software product using software engineering principles and methods is referred to as software evolution IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 12
  • 13.
    Lehman’s categories ofsoftware S-type (static-type) - This is a software, which works strictly according to defined specifications and solutions. P-type (practical-type) - This is a software with a collection of procedures. The specifications can be described but the solution is not obvious instantly. E-type (embedded-type) - This software works closely as the requirement of real-world environment. IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 13
  • 14.
    Software Paradigms Software paradigmsrefer to the methods and steps, which are taken while designing the software. IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 15
  • 15.
    Software Development Paradigm Requirement gathering Software design Programming IT1204- Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 16
  • 16.
    Software Design Paradigm Design Maintenance Programming IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 17
  • 17.
    Programming Paradigm Coding Testing Integration IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 18
  • 18.
    Need of SoftwareEngineering Large software - It is easier to build a wall than to a house or building, likewise, as the size of software become large engineering has to step to give it a scientific process. Scalability- If the software process were not based on scientific and engineering concepts, it would be easier to re-create new software than to scale an existing one. Cost- As hardware industry has shown its skills and huge manufacturing has lower down he price of computer and electronic hardware. But the cost of software remains high if proper process is not adapted. Dynamic Nature- The always growing and adapting nature of software hugely depends upon the environment in which user works. If the nature of software is always changing, new enhancements need to be done in the existing one. This is where software engineering plays a good role. Quality Management- Better process of software development provides better and quality software product. IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 19
  • 19.
    Characteristics of goodsoftware Operational Transitional Maintenance IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 20
  • 20.
    Operational BUDGET USABILITY EFFICIENCYCORRECTNESS FUNCTIONALITY DEPENDABILITY SECURITY SAFETY IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 21
  • 21.
    Transitional Portability Interoperability Reusability Adaptability IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 22
  • 22.
    Maintenance MODULARITY MAINTAINABILITY FLEXIBILITYSCALABILITY IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 23
  • 23.
    IT1204 - Instituteof Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 24
  • 24.
    Talk with peoplewho use the car, Communication Gather ideas, interests and trends Requirement Gathering IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 25
  • 25.
    Can we buildthem? Feasibility Study Finalize best model, Limitations System Analysis IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 26
  • 26.
    Design the parts,car Software Design IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 27
  • 27.
    Develop parts Coding &Testing Assemble the car Integration IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 28
  • 28.
    Test run Implementation Sell thecar Delivery & Handover IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 29
  • 29.
    Maintenance and Modify Operation and Maintenance IT1204- Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 30
  • 30.
    SDLC • Communication • RequirementGathering • Feasibility Study • System Analysis • Software Design • Coding & Testing • Integration • Implementation • Delivery & Handover • Maintenance IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 31
  • 31.
    Summary • Engineering vsSE • Why, What, Where SE • Software evolution • Lehman’s categories of software • Software Engineering paradigm • Characteristics of a software • Software life cycle IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 32
  • 32.
    History of Software Engineering •1945 to 1965: The origins • 1965 to 1985: The software crisis • 1985 to 1989: "No Silver Bullet“ • 1990 to 1999: Prominence of the Internet • 2000 to 2015: Lightweight methodologies [Assignment] IT1204 - Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 33
  • 33.
    Thank you IT1204 -Institute of Technology, University of Moratuwa Sameera Gunathilaka - Software Engineering 34

Editor's Notes

  • #2 Welcome > Introduction Name, one thing you love, why? (person/ Object/ activity/Subject/ place/ food) Create LinkedIn profile.
  • #4 Importance of the subject Motivate to study
  • #5  Is there anyone NOT using pens to write down notes?, you know how to use it.. Write on the books and papers. But you might have never think of the type of the materials, carbons and how they design the point. Similarly, I know you all have used software and computers as it is widely available in your finger tips. Do you think about how it is produced? This is the time for you to think about that.
  • #6 Things which makes the world a better place to live, things which makes the living easier.
  • #7 There are several type of engineering disciplines which makes visible and feel to everyone such as Automobile Engineering/ Civil/ Electronic/ Mechanical and many other types Then Where is Software Engineering?? What happens if you put two fingers in to the plug point, I can feel the current, But we cannot say the amount of voltage/current and resistance. In the same way two terminals of multi-meter takes input and display in an electronic display, who calculates and decide the values? That is the software. We need Software Engineering to make all other engineering applications easy and usable.
  • #8 90% of the people have a dream to purchase a car Software is everywhere Not only inside, but also from Design of this car> build it in a huge automated factory > Order and reserve the car in a selling website. Now you know, it is not just a programme in your computer or smart phone, it can be inside your digital watch, digital thomometer and it can be any other place.
  • #9  It is also an Engineering Discipline which is concerned with all aspects of software production. Computer science vs Software Engineering Computer science is connected with theory and fundamentals while SE is concerned with patrical aspect of developing and delivering software.
  • #10 A wide range of software applications are available such as.. Software Engineering principles are used in the process of developing software. There are many principles that are used in the industry to develop different type of software such as Mobile apps, Web apps, desktop apps, entraprise applications. It can be different from the objective of the software. Product based or project based, can be a open market software like Excel or s specific software
  • #12 Software is more than just a program code. A program is an executable code, which serves some computational purpose. Software is considered to be collection of executable programming code, associated libraries and documentations. Software, when made for a specific requirement is called software product.
  • #13 Evolution starts from the requirement gathering process. After which developers create a prototype of the intended software and show it to the users to get their feedback at the early stage of software product development. The users suggest changes, on which several consecutive updates and maintenance keep on changing too. This process changes to the original software, till the desired software is accomplished. Even after the user has desired software in hand, the advancing technology and the changing requirements force the software product to change accordingly. Re-creating software from scratch and to go one-on-one with requirement is not feasible. The only feasible and economical solution is to update the existing software so that it matches the latest requirements.
  • #14 S-type = Calculator P- Type – Computer Game E-Type – Online Trading software - This software has a high degree of evolution as there are various changes in laws, taxes etc. in the real world situations.   air-traffic control system of an airport; without it, the business of orchestrating the safe departure and arrival of flights would be impossible. In this example, it is easy to see how the system has become component of the real world.
  • #16 Programming paradigm is a subset of Software design paradigm which is further a subset of Software development paradigm.
  • #20 The need of software engineering arises because of higher rate of change in user requirements and environment on which the software is working. Large Software – ERP Scalability – Symbian – nokiya OS/ Hi5 replaced by Facebook Cost – Respurces/ technologies/ time/ RnD time Dynamic nature – in two years, you request Quality Management – Design quality / Code quality
  • #21 A software product can be judged by what it offers and how well it can be used. This software must satisfy on the following grounds: Operational = This tells us how well software works in operations. It can be measured on: Transitional = This aspect is important when the software is moved from one platform to another: Maintenance = This aspect briefs about how well a software has the capabilities to maintain itself in the ever-changing environment:
  • #22 This tells us how well software works in operations. It can be measured on:
  • #23 This aspect is important when the software is moved from one platform to another:
  • #24 This aspect briefs about how well a software has the capabilities to maintain itself in the ever-changing environment:
  • #25 How to build this?
  • #26 Google Summer of code, Microsoft champs, Scrum Conference, It conferences
  • #28 Components,, interfaces, Uis, Database
  • #32 Software Development Life Cycle