Personally, I think the software development process to achieve specific to each step of the work to complete what is very flexible. The core of the analysis, design, coding, debugging and maintaining these part of the work is the preparation of the document. The role of document have the following three aspects: First, it can help organize your thoughts. It can organize to accomplish objectives, system structure and function of each module, and then write down the different categories. So in the development process, there is basis to the need to go back to modify the design, but also permits can test. The second is to facilitate the conversation exchange. Third, it can serve as a reference for future maintenance. Do not expect your source code, for more complex procedures, the simple source code will kill off almost all your time.
So, it is necessary to open the software engineering course. This course will not only enable us to master the theory of software engineering, as well as from different instances so that theory and practice to get a good combination. Here is my summary of their own after the lectures. I know there are a lot of things do not understand, only through continuous learning in order to undo.
◆ the software crisis: refers to a series of problems encountered in the
process of software development and maintenance. The cause of the software crisis: the software itself cause (large-scale, complex, life 3-5 years); The method of software development and maintenance is not correct.
◆ Software engineering: It is the branch of computer science that seeks
principles to guide the development of large, complex software systems.
◆ the three elements of Software Engineering methodology: methods, tools,
process. (Software have a program, document, and data members)
◆ The difference of the traditional methodology and the object-oriented
methodology: Traditional methodology: process-oriented, use the waterfall model, software development is divided into several stages, emphasize that each stage of the integrity and order.
Object-oriented: start from the objective reality of things; use the way of natural thinking of the human to develop software.
Advantages of object-oriented methodology is as follows: maintainability; the same as the human's the way of thinking; stability; reusability good; easier to develop large-scale software.
◆ the software life cycle: the whole process of from design, put into
use to be eliminated.
◆ software development model: is the whole process of software
development, activities and tasks of the structural framework.
◆ Waterfall model: (planning, requirements analysis, software design,
top-down, step by step design, front output rear inputs)。
◆ Features: order, dependence, lack of flexibility .
◆ Scope: the project of specific user needs.
◆ Rapid Prototyping model: first create a primary procedure, based on
user demand continues to improve.
◆ Features: fast to meet with the user; development of high efficiency; slow and costly.
◆ Scope: demand is difficult or unclear items, user requirements.
◆ Incremental model : to complete the development of a subset of the
system, according to the same steps to increase functionality.
◆ Features: can be submitted within a short time some of the features of the product; users to adapt quickly; need experienced personnel.
◆ Scope: time-tight, short-term users need to use some features of experience.
◆ Spiral model:
◆ Features: Reduce the testing, maintenance and development; to software quality as a development goal.
◆ Scope: a large-scale software projects.
◆ Fountain model: a typical of model object-oriented software
development, with emphasis on the overlap between the different stages.
◆ Agile methods: Agile development is a people-centered, iterative,
incremental development 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 process, the software has been in a usable condition.
◆ 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 associated with the entity.
◆ The four phases of demand analysis: requirements elicitation, analysis
and modeling, documentation, certification requirements.
◆ the task of requirements analysis: precise define the goal of future
systems, determine the system must do in order to meet the needs of users. With "requirements specifications" standardized format to express accurately the needs of users.
◆ The ways to get requirements: Interviews; Stream-oriented top-down
refinement; Simple application requirements specification techniques; Quickly build software model.
◆ Requirements definition: A complete listing of everything the customer
wants to achieve; Describing the entities in the environment where the system will be installed.
◆ Requirements specification: restates the requirements as a
specification of how the proposed system shall behave.
◆ Structured analysis: data flow-oriented top-down stepwise refinement
analysis.
◆ Structural analysis of three models: (1) Data model---- ER
diagram;(2)Functional model ---- data flow diagram (DFD);(3)Behavioral model ---- the state transition diagram (STD). ◆ Software design phase:
◆ Outline design (overall design): determine the software architecture (modular) and the relationship between the components.
◆ Detailed design: determine the module's internal algorithms and data structures, program modules generate the process described in the detailed documentation.
◆ Software design principles: modularity, abstraction, stepwise
refinement, information hiding and localized.
◆ Modular: the program is divided into several modules, to complete a number of functions in independent, then form them a collective, to be completed by a specific function, to meet the requirements of the problem.
◆ Cohesion: refers to a module in the function of each element within each combination of the degree of tightness.
◆ Information hiding: the information contained in a module does not require such information for the module, it is not accessible.
1.软件危机的定义:计算机软件的开发和维护过程中所遇到的一系列严重问题。出现的问题:a.如何开发软件,已满足对软件日益增长的需求b…
1何谓科学,何谓工程?(第一章)科学是反映自然、社会、思维的发展与变化规律的知识体系。科学(研究)是以发现为核心的人类活动,探索事…
一个软件从开始计划起,到废弃不用止,称为软件生命周期。一般来说,软年生命周期包括计划、开发、运行三个时期,每一个时期又可分为若干个…
Personally,Ithinkthesoftwaredevelopmentprocesstoachievespecificto…
软件工程软件:计算机程序,方法,规则和相关文档资料及在计算机上运行所需的必要的数据。软件=程序+数据+文档资料软件的特点:1软件是…
软件工程过程:是为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。针对不同类型的软件产品,同一软件开发机构也…
姓名:xIkUg[BCG][DFCG][OCN][DCM][CZG]部门:行业开发部–超市项目组出生日期:1980-11-25个人…
十、项目开发总结报告1.引言...................................................…
摘要:计算机是20世纪最重大的科学技巧成就之一,使当代社会的经济、军事、科研、教育、服务等方面在概念和技巧上发生了性的变化,对人类…
学习软件工程这门课程已经有一个学期了,整整一个学期下来,应该说还是有许多值得肯定的地方的。其实在我看来,软件工程与其说是一门课程,…
一个软件从开始计划起,到废弃不用止,称为软件生命周期。一般来说,软年生命周期包括计划、开发、运行三个时期,每一个时期又可分为若干个…