《软件工程期末复习总结_SE_2》由会员分享,可在线阅读,更多相关《软件工程期末复习总结_SE_2(7页珍藏版)》请在金锄头文库上搜索。
1、WEEK 21. AnalysisDefinition identify class relationships; a conceptual class diagram; identify attributes for each entity class; add constraints.2. Design-contains enough information for a development team to implement solutionPurposeDescribe HOW the software system will plan to solve a problem.Theo
2、ry and TechniquesRole of Design: transforms the analysis model into a design model that serves as ablueprint for software construction.Question: why needs to consider nonfunctional requirements here in details?Ans. To describe the implementation of software solution.Design ModelComponent-level Desig
3、n(structural elements of software architecture-)procedural description ofsoftware components.Interface DesignHow the software communicate with itself.Architecture DesignDefine the relationship between major structural elements.Architecture: theoverall structureof software and the ways in which thats
4、tructure providesconceptual integrityfor a system. Some widely used ones are asbelow:Repository architecture Client-server architecture 【优势:its adistributed-systemstructure, with separation of clients and servers in order to achieveloosecoupling and high cohesion.Easy to maintainand it canspeed upth
5、e wholesystem.】Object-oriented architecture Layered architectureData flow architecture Architectural Design4 fundamental questions should be addressed in architecture design:Nodes and their network configurations (forms deployment model);Subsystems and their interfacesArchitecturally significant des
6、ign classesGeneric design mechanisms that handle common requirementsData/Class Design-basis to decide data structure.To define classes:outlining theDesign Classidentifying operations and attributesidentifying class relationshipsdescribing methods.Design Quality GuidelinesWhether: meet requirements,
7、modular, maintainable, traceable, well-documented,well-structured, error-free; contains distinct representations of data, architectures,interfaces, components.Functional IndependenceCouplingThe number of dependenciesbetween subsystems.Indicates the strengths of interconnections.Loosecoupling:relativ
8、elyindependent;modifications(errorsorfuturechanges) to one will have little impact on others.CohesionThe number of dependencieswithin a subsystem.Indicates the level of functional integration within a model.High cohesion: objects are related to each other and perform similartasks(encapsulates only t
9、he attributes and operations closely related to oneanother and class itself).Coupling VS CohesionTrade-off: decomposes the system into similar subsystem and minimizes thenumber of subsystems.Class Diagram (Design)Based on conceptual class diagram, adds operations to each class and capturesimplementa
10、tion requirements.3. Implementation-生成”.class”文件的过程Role of ImplementationMapping executable components onto nodes in the deployment model.Components: physical packaging of model elements, tracing the design element itimplements.Architecture: subsystems and their interfaces as well as dependencies, k
11、ey components.Integration Build Plan-describesthe sequence of buildsrequired in an iterationBuild: result of each manageable step, which is an executable version of the system.Each is subject to integration tests before creating, and each has a version control s.t. itspossible to go back to the prev
12、ious build.Question: if one component expires, they may fail when put together, why?Ans. Bring back version control.For each build, the plan describes expected functionality to be implemented and theaffected part of implementation model by the build.OOP (Object-Oriented Programming): mapping design
13、to code用面向对象的编程需要实现以下 2 种源代码:class definitionsmethods definitionsOOP language provides:(1) References-simplest: unidirectional associationone-to-oneone-to-many-another: bidirectionalone-to-oneone-to-manymany-to-many.(2) CollectionsImplementation StepsFrom least coupled to most coupled.fully unit tes
14、ts each class at each step: build a test harness; check that the methods of class behave as expected; check the robustness of methods.4. TestingRole of testingAimVerify the result from implementation stage by testing each software build = finderrors prior to delivery to the end user.Who test?At the
15、component level: by developers.At the integration level: independent testing engineer/teamwho did not involved in the system construction but having detailed understanding ofthe whole system.GoalsValidation TestingTo both developer and customer meets its requirements.Successful test = the system ope
16、rates as intended.Defect TestingTo discover failure(= any deviation), error(=if processing further, itll lead tofailure), defect(undesirable things in the system).Successful test = makes the system perform incorrectly and so exposes adefect in the system.ProcessUnit testing=Component Testing,针对 system component.System testing针对 the whole system.Acceptance testing=Alpha Testing,针对 customers data.Software Testing ModelTest cases:specificationof inputs and exp