Software Engineering final review (1)

Source: Internet
Author: User

Chapter 1 Overview

Main content:

Software? What are the features of the software? Software classification? Development of Computer Software
Software Crisis? Performance? Why? How can this problem be solved?
Software Engineering? Seven basic principles?
Software Process? Software lifecycle?
Software Process Model?
Software Development Method
Software tools and software development environment

Requirements:
(1) Recognition: What are the characteristics of software and software? Software Engineering?
(2) Understanding: What is the appearance and performance of the software crisis? Why? Methods to overcome, software life cycle tasks, Software Engineering Methodology and common software process models.

Software 1.1

Definition: Software =Program+ Data + documentation
1. Data: Objects processed by a program. Including data representation, organization, and storage.
Data = initialization Data + Test Data
2. Document: graphic materials required for the development, use, and maintenance of programs.
Document = Development document + management document.
3. Program: a set of commands that can fulfill the predefined functions and performance.
4. Differences between software and programs
The program is only part of the complete software product.
Programming is only a stage of data in the software development process. Generally, the workload is only 10%-20% of the total workload of software development.

Software features
Abstraction: logical entity. Record. However, the development process is not visualized, And the development results are hard to be intuitively expressed.
Reproducibility: Compared with development costs, replication costs are low.
No depreciation
Hardware Constraints
Not completely get rid of manual craft
High development costs

Software category
1. According to applicable scope:
Customized software (custom software) Project Software
General Software (generic software) product software.
2. By software function:
System software; application software; supporting software
3. By Software Architecture
Desktop software; distributed software; parallel software
4. By scale:
(1) small software (1-5 person-years); (2) Medium-sized Software (5-50 person-years)
(3) large software (50 or more years ).
5. By working method:
(1) Real-time software; (2) time-based software; (3) interactive software;
(4) batch processing software; (5) embedded software ).

Three phases of Computer Software Development
1. Early Stage of programming (before the middle of 1960s)
General hardware and software applications; small program size; the writers and users are the same person (same group ).
2. Second Generation (mid-December 1960s-mid-December 1970s) procedural system Stage
"Software workshops", product software, and "individualized" development methods appear.
3. Third-generation software engineering phase (after the middle of 1970s)
Software development has become an emerging engineering discipline-software engineering.

1.2 software crisis

 

I. emergence of Software Crisis

After the middle of 1960s, some requirements for developing large software systems were raised.
However, the progress of software technology has not been able to meet the development needs of the situation. In the process of large-scale software development, there are three major challenges: high complexity, long development cycle, and hard to guarantee correctness.
The problems encountered could not be solved, resulting in the accumulation of problems, forming a situation that is difficult to control and the so-called "software crisis ".

Ii. Definition of Software Crisis
Software Crisis refers to a series of serious problems encountered during the development and maintenance of computer software.
There are two main problems:
1. How to develop software and meet the increasing demand for software.
2. How to maintain a growing number of existing software

Iii. Main Manifestation of Software Crisis
1. the estimation of software development costs and progress is inaccurate, and even the development process is aborted.
2. User Dissatisfaction often occurs when the requirements are not met
3. Low software quality and poor reliability
4. Lack of appropriate documentation, software is often not maintained, and errors are difficult to correct.
5. The proportion of software costs to total system costs increases year by year
6. The software development speed cannot keep up with the computer development speed. The software productivity is low and cannot meet the needs.

Iv. Causes of Software Crisis
It is related to the characteristics of the software. The software is a logical product, and the development progress and cost are hard to estimate.
Lack of incomplete or inconsistent documents makes maintenance difficult
The user's description of the software requirements is often inaccurate, missing, and ambiguous.
The understanding of the requirements of software developers is different from the user's original desire. In the process of software development, software developers adopt incorrect methods and technologies more or less. If you do not have a complete and accurate understanding of user needs, you can rush to write programs.
Large-scale software projects require collaboration and lack of management experience
Lack of strong methodology and tool support
Particularity of software projects and limitations of human intelligence

5. Solutions to the software crisis
1. Technical Measures
Concepts and practices for eliminating errors
Use better software development methods and tools
2. Organization Management Measures
Software development is not a mysterious technique of individual labor, but a well-organized, well-managed, collaborative collaboration among various personnel, and jointly completed engineering project.

1.3 Software Engineering

1. What is software engineering?
Software Engineering is gradually formed and developed in the process of overcoming the "Software Crisis" that emerged at the end of 1960s.

Software Engineering is an engineering discipline that guides computer software development and maintenance. It uses engineering concepts, principles, technologies and methods to develop and maintain software, and combines time-tested and proven management technologies with the best current technical methods.

Ii. Objectives of Software Engineering

The goal of software engineering is to set the cost and progress, develop software products that can be modified, effective, reliable, understandable, maintainability, reusability, adaptability, portability, traceability and interoperability and meet user needs.

Iv. Scope of Software Engineering Research

Software management technology: includes planning, organization, control, leadership and incentives.

Three elements of Software Engineering: methods, tools, and processes

5. Essential Features of Software Engineering

Focus on the construction of large programs
Central subject is inherent complexity of Control Software
Respond to demand changes
Improve the efficiency of software development and maintenance
Advocating a disciplined process
The ultimate goal is to satisfy the customer
The difficulty is to understand and describe the problem domain.

1.4 Software Process and software survival

I. software life cycle

Software life cycle: the entire process from design, application to elimination of software products or systems.

Software life cycle is generally divided into: Software Definition (problem definition, feasibility study, demand analysis), software development (overall design, detailed design, coding and unit testing, Integrated Testing) software maintenance.
2. Software Process)

Software Process: A series of related processes in the software life cycle. A process is a collection of activities, and an activity is a collection of tasks. It specifies the steps to complete each task.
The software process has three meanings:
The meaning of an individual refers to a set of activities of a software product or system in the life cycle, such as the software development process and software management process;
The overall meaning refers to the overall software process of a software product or system under all the above meanings;
The meaning of the project refers to the project that solves the software process. It constructs the software process model by applying the principles and methods of software engineering, and instantiates the model according to the specific requirements of software products, and operation in the user environment to further improve software productivity and reduce costs.

Capability Maturity Model CMM

Capacity Maturity Model (CMM) is a model used to evaluate the Software Process Capability Maturity of software institutions.
CMM provides a maturity level framework: Level 1-initial level, level 2-repeatable level, Level 3-defined level, Level 4-Managed Level, and level 5-optimization level.
The cmme Capability Maturity Model integration model provides two kinds of representation for the combination of each discipline: A staged model and a continuous model.
1.5 software development model)

A software development model is a model that describes how various activities are executed during software development. It is also known as a software process model or a software life cycle model.
Typical software process models include:
Waterfall Model)
Evolutionary Model)
Incremental Model)
Prototyping model)
Spiral Model)
Water fountain model)
Component-Based Development Model)
Formal method model (Formal Methods Model)

1.5 Software Development Method

The goal of software development is to develop high-quality software that meets users' needs within the specified investment and time. Therefore, a successful development method is required.

Software development methods can be divided into two categories:
Process-oriented development methods
Structured Development Method
Data Structure-oriented development method
Prototype Development Method
Object-Oriented development method
 

 

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.