Chapter I software definition: is another part of a computer system that is interdependent with hardware, including a complete set of programs, data, and related documents. Software features: morphological characteristics, intelligent characteristics, development characteristics, quality characteristics, production characteristics, management characteristics, environmental characteristics, maintenance characteristics, waste characteristics, application characteristics. Software classification. (1) system software (2) application software (3) Support software (4) Reusable software software crisis reasons: 1) lack of experience in software development and the accumulation of software development data make it difficult to develop a plan for development work. 2) There are obstacles to the communication between the software personnel and the users, in addition to the differences in the knowledge background, the lack of suitable communication methods and requirements Description Tools is also an important reason. 3) Software development process is not standardized, lack of methodological and normative guidance, software difficult to maintain. 4) with the increase of software scale, its complexity tends to increase exponentially. 5) The lack of effective software evaluation means, the submission of user software quality is poor engineering definition: 1. An engineering discipline that directs software development and maintenance, which is guided by the theory of computer science and other related disciplines, uses engineering concepts, principles and techniques to develop and maintain software, and combines the best technical methods that have been proven by time considerations to be the right management technology Get high-quality software and maintain at less cost 2. Software Engineering Objectives: The use of advanced software development technology and management methods to improve the quality and productivity of software, that is, to produce high-quality software products in a short period of time, low cost, and ultimately realize the industrialization of software production. 3. Software life cycle: software breeding, birth, growth, maturity, decay of the survival process. It consists of three periods of software definition, software development and operation maintenance. Software definition: Solve the problem of "what to Do", software development: Solve "How to do" problem, divided into outline design, detailed design, coding and testing four phases; maintenance: Make the software durable to meet the needs of users. 4. Typical documentation in the development process a. Software Requirements Specification: Describe what software will be developed. B. Project plan: Describe the tasks that will be completed and their order, and estimate the time and effort required. c. Software Test plan: Describes how to test the software to ensure that the software implements the required functionality and achieves the expected performance. D. Software Design specification: Describes the structure of the software, including the outline design and detailed design. E. User manual: Describes how to use software basic tasks at each stage: problem definition and feasibility studies, requirements analysis, software design, program coding and unit testing, integration testing and system testing. 5. Software lifetime model: waterfall model. Pros: Forcing developers to standardize methods, strict rulesDocuments that must be submitted at each stage and all products required to be surrendered at each stage must be validated. Cons: Relying entirely on written specifications may result in discrepancies between the product and the user's needs, only when the requirements have been determined at the beginning of the project. Requirements analysis, specification, design, coding, comprehensive testing, maintenance rapid prototyping model. Advantages: Easy to meet the real needs of users, has passed with the user's interactive verification, can correctly describe the user needs, product development basically in linear order, specification document description correctly describes the user needs, late error rate and rework rate is very low, developers to build a prototype system learned things to reduce the late error rate, Rapid development helps to save costs, and the use of prototypes is to get the true needs of users. Incremental models. Advantages: A short time to submit useful products, gradually increase the product to help users adapt to learning, project failure risk, the highest priority service delivery first, the system core services to accept the most tests, generally will not fail. Note: New artifacts must be added to the system without destroying the products that have been developed, the architecture must be open, and the new artifacts are easily added to them. Spiral model. Four quadrants: Goal setting, risk estimation and weakening, development and validation, and planning. Advantages are beneficial to the reuse of existing software, but also help to make software quality as an important goal of development, reduce the risk of excessive testing or inadequate testing, maintenance and development there is no essential difference between. Disadvantage: This model is risk-driven, requiring developers to have a rich experience of risk assessment, otherwise they will not be aware of the risk of the emergence of failure. 6.6 Core workflows of the Unified Process: business modeling, requirements, analysis and design, implementation, testing, deployment 7.4 phases of the unification process: initial stage, refinement stage, construction stage, handover stage. A. Focus on project planning and risk assessment to determine whether the target system is worth developing. B. The refinement phase is concerned with defining the overall framework of the system, with the goal of refining the initial requirements, refining the architecture, monitoring risks and refining their priorities, refining the business case, and developing a project management plan. C. The construction phase is the establishment of the system, which constructs the first operational version of the system to be able to deliver the beta beta version end to the customer. D. The transfer phase contains beta testing periods, terminated with the completion of the complete system, with the goal of ensuring that the system truly meets the customer's needs.
Introduction to Software engineering the core content of the first chapter