[关闭]
@xmruibi 2014-10-27T19:27:38.000000Z 字数 12485 阅读 802

Software Engineering

Software_Engineering


1. What is software engineering?

Software engineering is a systematic, disciplined and quantiable approach to develop a software through requirement definition, design and analysis, programing and implement, release and testing, and mainteinance. Such a procedure is also collaborative, cost-efficient and iterative.

2. General phase of software engineering.

3. Compare waterfall and incremental development process model

4. Why changes become more costly in later phases of the software engineering?

Because in later phases, any change should cause more work effort than earlier phases. For example, if there is any changes on requirement, only document should be modified if the phase of development still in requirement stage. However, if such a change occurred in later phase like software release, almost all of before work including design and analysis, and implement should be reworked.

5. Generic software product development and commissioned software product

Generic software product development means to develop a software which will be sold to general public who want to use after the software released to market. The specification of what the software should do is owned by the software developer and decisions on software change are made by the developer.

Commissioned software product develpment means to develop a customized software according to specific user requirement from the beginning of development. The specification of what the software should do is owned by the customer for the software and they make decisions on software changes that are required.

6. Why it is important to identify the type of software product and the type of software application?

The type of software product helps us to know the procedure of software such as if we need to communicate with the specific customer;
The type of software application gives us an overview of what the software look like and what technologies should be implied into software system.

7. Why a software project can fail and what is the impact caused by such a failure?

Software can be failed due to a tiny bug or error. For example, Ariane 5 flight 501 was exploded during launching stage, which is caused by a bug in program that a wrong conversion between 64 float value to 16 signed integer.

8. Stakeholder

-is directly affected by the software system
-uses the software
-tests the software
-directly influences software requirements
-install/configures the software
-has financial influence over or financial responsibility for the system
-manages the development team
-is a third party develpoer writing an interface to the system

9. What is requirement engineering?

Requirements engineering, is the iterative process of determining user expectations for a new or modified product and establishing the services of the software and the constraints under which it operates and is developed. These features, called requirements, must be quantifiable, relevant and detailed. Deals with understanding the problem that is to be solved and communicating the solution for the problem effectively.

10. The phase of requirement engineering

Requirement elicitation:

Requirement analysis:

Requirement specification:

The process of documenting requirements in a document. Have to be understandable by stakeholders who do not have a technical background. May be part of a contract for the system development. Important that these are as complete as possible.

Requirement validation:

11. Validation vs Verification

Validation: checks that the product design satisfies or fits the intended use. The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. Develop the right software.

Verification: The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. Develop the software right.

11. 10 Requirements Traps to Avoid

12. Software Design

Interface: that means designing the interface of software like mobile device interface;
Architectural: designning the architetural
Communication, Components, Database

13. Software Engineering Activities

Risk Assessment; Reviews; Design; Architecture; Modeling; Simulation; Prototyping; Management; Evolution; Testing; Coding; Documentation; Marketing; Operations; Maintenance; Support; Demonstration; Requirements; Training

14. Management Activities

15. Software prototyping

A prototype is an initial version of a system used to demonstrate concepts and try out design options.
A prototype can be used in: Requirements, Design, Testing.

16. Types of Requirements

17, Good quanlity of requirement

18. Testing

Testing will never eliminate problems completely, but it can reduce the number of problems (Recurring theme in Software Engineering).
Testing increases the confidence in the software. Technically, once the software is shipped, the testing phase ends, but really testing is an ongoing activity throughout all phases

Stages of Testing:

Testing Techniques

Testing is a tradeoff between: Budget, Schedule, Quality

19. Black-Box and White-Box Testing

Black Box testing treats the software as a black box, that is we give the software an input and expect an output. The internal structure and design of the software may not be known and is not necessary to generate test cases. Data driven, input/output driven and requirements driven testing are terms also used for black box testing.
White box testing depends on knowing the internal software structure and flow.
Tests cases are created for each independent linear path.(Cyclomatic complexity)
Glass-box testing, design driven and logic based testing are terms also used for white box testing.

20. User Testing

User or customer testing is a stage in the testing process in which users or customers provide input and advice on system testing. User testing is essential, even when comprehensive system and release testing have been carried out.

21. Cohesion and Coupling

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注