2. What’s Software Engineering?
● Software engineering is the application of engineering to software.
● The application of systematic, disciplined, and quantifiable
approaches to the design, development, operation, and
maintenance of software, and the study of these approaches.
● First introduced in NATO Software Engineering Conference in 1968.
3. Software Industry
● Independent Programming Services (Era1)
● Computer Usage Company(1955–1986), sometimes called Computer Usage
Corporation, was the first independent company to market computer software.
● Software Product (Era2)
● 1964 Martin Goetz developed Flowchart Software -- Autoflow for RCA, but rejected.
● Develop and market software products not specifically designed for a particular
hardware platform.
● Enterprise Solutions (Era3)
● Systems, Applications and Products (SAP) $3.3 billion (1977)
● Packaged Software for the Masses (Era4)
● Software products for the masses. 1979. > VisiCalc, Spreadsheet program.
● Internet Software and Services (Era 5)
● World Wide Web by Tim Berners-Lee, 1990
● Cloud & IoT ? (Era 6)
5. Software Lifecycle Model
● Software engineering is the application of engineering to software.
● The process of building a product is sometimes called a lifecycle
because it describes the life of that product from conception through to
its implementation, delivery, use and maintenance.
6. Waterfall Model
● Here I plan to go through some well-known Software Lifecycle Model.
● First one is "Waterfall Model"
7. Waterfall Model
● Pros & Cons
● Benefits of the waterfall model
– Being a linear model, it is easy to implement.
– Output (documentation) is generated after each stage.
● The main drawbacks of this model
– Assume the requirements are well-understood and complete.
– Hard to accommodate changes after the process is underway.
– One phase has to be complete before moving onto the next one.
– Commitments must be made at an early stage in the process.
8. V Model
● Emerged in reaction to some waterfall models that showed testing
as a single phase following the traditional development phases of
requirements analysis, high-level design, detailed design and coding.
● The V model portrays several distinct testing levels and illustrates
how each level addresses a different stage of the software lifecycle.
● The V shows the typical sequence of development activities on the left-
hand (downhill) side and the corresponding sequence of test execution
activities on the right-hand
10. Prototyping Model
● Specifications can be developed incrementally!
● As users develop a better understanding of their problem, this can be
reflected in the software system.
11. Prototyping Model
● Pros & Cons
● Benefit of prototyping
– Improve communication
– Reduce risk
– Validate specification
– For maintenance as well
● Problems of prototyping
– System are often poorly structured.
12. More
● Component-based Software Process Model
● Spiral Model: Risk-Driven
● Automatic Synthesis Model
● Object-Oriented Model
● Agile software development
● ...
13. Agile - Manifesto
● Manifesto for Agile Software Development
● Individuals and interactions over processes and tools
● Working software over comprehensive documentation
● Customer collaboration over contract negotiation
● Responding to change over following a plan
● ...
15. Product Backlog
● The requirements
● A list of all desired work in the project
● Ideally expressed such that each item has value to the users or
customers of the product
● Prioritized by the product owner
16. Sprint Backlog
● The list of tasks a scrum team needs to complete during a sprint.
● An output of a sprint planning meeting.
● Turn a selected set of product backlog into a deliverable of
increment of functionality.
● Each task in a sprint backlog has a time-based (hourly or daily)
estimate.
17. Managing Sprint Backlog
● Estimated work remaining is updated daily so as to reflect on the
Burndown Chart.
● Any team member can add, delete or change the sprint backlog
● If work is unclear, define a sprint backlog item with a larger amount of
time and break it down later
18.
19. Appendix
● Prototype Model: Advantages and Disadvantages
● [ HF Software Dev ] Chap1 : Great Software Development
● [ HF Software Dev ] Chap2 : Gathering requirement - Knowing what the customer wants