软件工程总结2由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程总结”。
As early as when I chose the software profeional , I always think of software engineering is nothing but the code to knock.knock from the proce of code to realize the meaning and use all the code in software engineering.I have always been a hard knock code to learn software development when haven't learned.After learning of software engineering ,I feel I've learning method is wrong.I used to only focus on the code, rather than on theoretical knowledge as well as programming ideas ,and the program's structure.My knowledge of software engineering point of this course summary as below : ● Software: Software is able to complete the intended function and performance of the executable computer program and the procedures required for the normal execution of data, coupled with the program's operation and use of documents.● Software features:(1)software is a logical entity, rather than specific physical entity, so it has the abstract.(2)software is the people's intelligence activities, the knowledge and technology transform into a product of information.(3)After software transform into the product, its production simply copy different from the hardware manufacturer.(4)the maintenance proce more complex than hardware, and even lead to new errors.● Software crisis: refers to the proce of software development and maintenance of a range of serious problems encountered.Cause of a software crisis:(1)The sharp increase in software maintenance costs, a direct threat to the expansion of computer applications.(2)software production technology progre is slow.● Software Engineering: a guiding engineering disciplines of development and maintenance of computer software.● Software life cycle: from definition to a software development, use and maintain, until finally
being abandoned, to undergo a long period of time, usually the software through this long period of time known as the life cycle.Software life cycle can be divided into the following stages: Problem Definition;Feasibility study;Demand Analysis;Overall(summary)design;Detailed design;Coding and unit testing;Integrated Test;Software Maintenance.● ● software proce models: software development model is the whole proce of software Waterfall model is that the life cycle model, proposed by the BMBoehm , it is the basis for development, software development activities and structural framework of the relationship between them.software engineering model.Its core idea is to simplify the problem by proce, implementation and design of functional separation, to facilitate division of labor.The use of structured analysis and design methods, the logical and physical implementation to achieve separation.Waterfall model emphasizes the role of the document and asked each stage must be carefully verified.● ● ● ● Rapid prototyping model: to achieve the customer or a future user interaction with the system.Phased development: increments and iterations(repeated increments).Spiral model: the combination of the waterfall model and rapid prototyping models.It Agile methods: Agile development is a people-centered, iterative, incremental development emphasized the neglect of other risk analysis models, especially for large complex systems.methodology.In agile development, software project build was cut into several subprojects, each subproject results are tested, with the integration and operation characteristics.In other words, it is to a large project into multiple interrelated, but small projects can be run independently, and were completed.In this proce, the software has been in a usable condition.● Feasibility study: compreion simplified systems analysis and design proce, that is to say a
higher level in a more abstract approach to the design proce.Not solve the problem, but the problem is solvable and determine whether it is worthwhile solution.● ● System flow chart is a traditional tools of depicting the physical system.It is expreed in the Structured method of analysis using data flow diagrams and data dictionary to describe.Its core data flow between the various components in the system, rather than the data proceing control proce.idea is simple decomposition of the problem, said the physical and logical separation of data and logic of the system abstraction.Summarize, structural analysis is stream-oriented top-down stepwise refinement, a needs analysis.● Data flow diagram(DFD): describe the flow of information and data move from input to output in the proce of change experienced.● Data Dictionary(DD)effect: the software provides a definition of each data entry in order to maintain the consistency of the data in the system.● ER diagram have three core constructs: An entity: depicted as a rectangle, represents a collection of real-world objects that have common properties and behaviors.A relationship: depicted as an edge between two entities, with diamond in the middle of the edge specifying the type of relationship.An attribute: an annotation on an entity that describes data or properties aociated with the entity.● The tasks of requirements analysis: requirements analysis work to be done in-depth description of software functionality and performance, to determine the limits of software design and software interface with other system elements in detail ,to define the validity of the other software requirements.In general, the needs analysis phase of the miion and work: 1 , to determine the complex requirements of the system.(1)functional requirements(2)performance requirements(3)operational requirements(4)poible future expansion requirements(5)reliability and availability requirements(6), error handling and security requirements(7)Interface Requirements(8)Design constraint, etc.2, the data analysis system requirements(1)to build conceptual models:(2)image depicts the data structure and standardized data structure 3, the logical model derived 4, to amend the plan: the revaluation cost, schedule, etc.5, the prototype system to verify the correctne and the system meets the requirements.● requirements analysis principles:(1)must be able to expre and understand the problem of data fields and function fields;(2)by top-down, layer by layer decomposition of the problem;(3)to given the system's logical and physical views.● ● Requirements definition: A complete listing of everything the customer wants to Requirements specification: Restates the requirements as a specification of how the proposed achieve ,describing the entities in the environment where the system will be installed.system shall behave.● Software design task: to produce the software requirements analysis phase into a description of methods of representation with the appropriate software design documentation.No matter what kind of software design, software design generally includes data design, architecture design, interface design and proce design and so on.● Structured design methods: a stream-oriented design methods, the central task is to use the DFD diagram shows the system model into a software architecture model to determine the software architecture and interfaces.● Data stream type: Data flow-oriented design methods to map the flow of information into a software architecture, information flow type determines the mapping method.Information flow has the following two types: transformation flow and transaction flow.● Structured analysis methods: Module: It is a entity with clearly defined input, output and physical characteristics of the program.All input modules are eential to achieve the function, all outputs are generated action.Modular: the program is divided into several modules, each module has a sub-function, these modules lumped together to form a whole, can complete the aigned functions, to achieve the requirements of the problem.Modular design: the large-scale software in accordance with the principles laid divided into a smaller , relatively independent but interrelated modules.Decomposition and module independence, is the modular design of the important guiding ideology.Abstract: that is, characteristics of the nature of things out not to consider them in detail.Information Hiding: The information contained in the module does not allow other modules do not need to call information.Module independence: the software system software requirements for each module involves only the specific sub-functions, while the rest of the system and software modules interface is simple.Cohesion : mark a module with all elements of the close of each other.Coupling : a software architecture is the interconnection between various modules within the measure of the degree.Depth: that software architecture to control the number of layers, it can often mark a system roughly the size and complexity.Width: within the structure of the software module on the same level of maximum total.Fanout: a module direct control(call)number of modules, fan-out is too large means that the module is too complex, fan-out is too small(for example, is always 1)is not good.Fan: the number of higher level modules that directly call it, the greater the share of the fan module, the more the higher number of modules, which is good.● We can measure coupling along a range of dependence
● The basic principles of software design: Modular;abstract;information hiding;module independence.● ● The basic software design experience: Module independence, low coupling, high cohesion, The difference between testing and debugging: Test is to find errors in the program and program public module.execution proce.Debugging by locating and correcting errors, eliminate software failures, to ensure reliable operation of the program.● ● Types of tests: According to test whether the actual application environment to points, there are Test methods: Black box testing method, according to the program's functionality to design test static analysis and dynamic testing.cases;White-box testing method, according to the internal structure of the program under test design test cases.The usual practice is to use black box method the basic design of the test program, and then add some white-box method program.● Software testing test case design is a central element.Test a program to use multiple test cases, and each test case should include a set of test data and a corresponding expected test results.● Black box testing method in the three common techniques: equivalence division method, boundary value analysis, error gueing(gueing)method.● ● operation ● Software Reliability: It is a program, in accordance with the provisions of the specification the probability of a succeful run in a given time interval.● ● Software Maintenance: Software operation phase of the software product modifications is The type of software maintenance: improving maintenance;adaptive maintenance;maintained.commiioning maintenance;preventive maintenance.● Software maintainability: measure of the ease of software maintenance of a software attribute.Qualitative said, depends on the maintainability of software the following properties: intelligibility, modifiability and testability.● Software configuration: Software life cycle, its various forms, various versions of the documentation and procedures in general.● Software Re-engineering: reverse engineering, restructuring and other technology, a full understanding of the original software, based on the decomposition, synthesis, and re-building software to improve software understandability, maintainability, reusability.● UML cla diagram of Figure 9 include: cla diagram;object graph;use case diagram;sequence diagram;collaboration diagram;state diagram;activity diagram;component diagram;deployment diagram.● Using UML for modeling the demand: that we can use cases(use case)needs to proceed as a good starting point for modeling.Use cases are organized according to the system using the system.To use cases as a starting point for requirements modeling, allows us to focus attention on customers.Use case diagram is to show a set of use cases, the relationship between the participants and their plans.Use case diagram includes the following three aspects.1.Participants.2.Use cases.3.Dependence, generalization and aociation.● diagram.Activity Diagram: these will be described in the UML activity flow graph is called an activity
White-box testing method: logic coverage test and path testing method.Test steps: 1.Unit testing 2.Integration Testing 3.Validity of test 4.System Testing 5.Parallel
● ● ● State Diagram: to model the dynamic aspects of the system.From the UML design point of view, the type of cla usually can be divided into three types: The relationship between claes(analysis): entity cla, the boundary type and the control cla.Relationships is the link between things.(1)dependency(2)generalization(3)implementation(4)aociated.● Component diagrams and deployment diagrams relations: Component diagrams used to describe the composition of software systems, but did not describe the system in hardware-related composition.Deployment plans used to describe the physical topology of the system hardware and software running on this structure.● Forward proce and reverse engineering: Forward proce is to achieve positive language mapping and the proce model into code.Reverse engineering is the mapping from a specific implementation language and the code to model the proce.Personally think, the course of Software Engineering is a a neceary science courses for people who do software development.By learning this course, programmers will focus on software development, theoretical knowledge, and to do project development ideas.After learning of the course you will not write a program to blindly apply the code, but to clarify the structure of the program and ideas.When the program from the start, when to stop.What needs to be added in the middle of the function, to improve the software.In fact, software engineering is not difficult to learn and easy.If Software Engineering linked to daily life, then, is the day you should do first, what to do after.Understand what to do first, what to do after the after the write proce is not so difficult, more complex programs can be divided into several large pieces.After you sort out the idea of the program step by step solution can be one of the problems, and ultimately software.If you do not learn software engineering proce to clarify the idea , then do a large project development, so much code, not a very good structure, it will eventually lead to procedural confusion, mistakes, even more aware of the code will do nothing of the elements.All in all, as a programmer to learn software engineering course is neceary, if not to learn software engineering, you will not do the project development, it is impoible to develop a complete software out.