lecture 1-2

Basic (not detailed as official ppt)

  • what is computer software?

    computer software is the product that software professionals build and then support for a long term.

  • why is it important?

    Software is essential because it affects nearly every aspect of our lives and has become pervasive in out commerce, our culture and our daily activities.

  • what is software engineering?

    software engineering is a engineering discipline that is concerned with all aspects of software production.

Intro

  • we can not run the modern world without software.

    3 reasons. see in official powerpoint.

  • therefore, software engineering is essential for the functioning of national and international societies.

  • software system are abstract and intangible.

    they are not constrained by the property of materials, governed by physical laws, or by manufacturing process.

  • implication (possible reasons)

    • this simplifies software engineering, as there are no natural limits to the potentials of software
    • Due to the lack of physical constraints, it is likely for the software to be extremely complex quickly, difficult to understand and expensive to change.

failure and success ( i don't think it is important, check in ppt)

Professional software development

• Software engineering is intended to support professional software development, rather than individual programming.

• It includes techniques that support program specification, design, validation, and evolution.

Professional software usually has the following properties (Refer to table on next page):

  • • Strict user requirements
  • • Required accuracy and data integrity
  • • Higher security standard
  • • Stable performance for heavy load
  • • Required technical support, etc

product characteristic

  • maintainability
  • dependability and security
  • efficiency
  • acceptability

TWO KINDS OF SOFTWARE PRODUCTS

  • generic:
  • customized:
    the main difference is who own the software, who has the right of change the function of the software

deterioration

Software doesn’t wear out. But it does deteriorate

As changes are made, it is likely that errors will be introduced, causing the failure rate curve to spike

Before the curve can return to the original steady-state failure rate, another change is requested, causing the curve to spike again.

SOFTWARE ENGINEERING APPROACHES

There are four fundamental activities that are common to all software processes: -

• Software specification

• Software development

• Software validation

• Software evolution

Different types of systems need different development processes.

假设100个需求, 有一种做法是先实现全部,然后测试,然后用. 另一种是先实现40个基本的,流程走完,用起来,在不断添加需求的实现.

2 major approaches: -

• Sequential

• Iterative
specification and development are interleaved

Ethic

As a software engineer, you must accept that your job involves wider responsibilities than simply the application of technical skills.

• There are areas where standards of acceptable behavior are not bound by laws but by the more tenuous notion of professional responsibility. Some of these are:

• Confidentiality

• Competence

• Intellectual property rights

• Computer misuse

Risk

Many software development projects run into difficulties

​ • Does not work as expected

​ • Over budget

​ • Late delivery

Much of the functionalities in the software is wasted

​ • Wrong requirement

​ • User dislike it

​ • There are no customer

​ • etc

The software development team must: -

• Fully understand requirement

• Validate requirement

the client satisfaction is the primary measurement of success in software project.

minimize risk

• Communication with the client

​ • Feasibility studies

​ • Separation of requirement from design

​ • Milestones and releases

​ • Acceptance and user testing