《2010 軟件工程復(fù)習(xí)》由會(huì)員分享,可在線閱讀,更多相關(guān)《2010 軟件工程復(fù)習(xí)(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Software Engineering Review,2010 Autumn,2,Why Software Engineering?,What is software engineering? Solving problems Where does the software engineer fit in? How successful have we have? What is good software? The quality of the product The quality of the process CMM, ISO 9000, SPICE Quality in the co
2、ntext of the business environment ROI (return on investment),3,Why Software Engineering?,Who does software engineering? Customer, user, and developer A system approach What is a system? The elements of a system Relationships and the system boundary An engineering approach Building a system Members o
3、f the development team The roles of the development team,4,Modeling the Process and Life Cycle,The meaning of process What is a process, a life cycle, and a software life cycle? Understanding the concept of a process Software process models The reasons to model the process Several typical software p
4、rocess models description, the model, advantages and disadvantages, examples Waterfall model V model Prototyping model Phased development: increments and iterations Spiral model Agile methods,5,Planning and Managing the Project,Tracking progress What is a project schedule, an activity, and a milesto
5、ne Work breakdown and activity graphs 4 parameters to describe an activity: precursor, duration, due date, and endpoint Activity graph Estimating completion CPM (Critical Path Method) (*) Slack time for an activity Tools to track progress Gantt chart,6,Planning and Managing the Project,Project perso
6、nnel Staff roles and characteristics Work styles Project organization Depend on three factors Chief programmer team Egoless approach Effort estimation Can not produce accurate estimates Risk management activities What is a risk? Steps in risk management Hoe to reduce risk? The project plan,7,Capturi
7、ng the Requirements,The requirements process What is a requirement? Requirements elicitation Who are stakeholders? The means of eliciting requirements Types of requirement Functional requirements Quality requirements/nonfunctional requirements Design constraint Process constraint -- the above are 4
8、types of requirements Resolving conflicts priority Two kinds of requirements documents Requirements definition Requirements specification,8,Capturing the Requirements,Characteristics of requirements Correct Consistent Unambiguous Complete Feasible Relevant Testable traceable,9,Capturing the Requirem
9、ents,Modeling notations Entity-relationship diagrams Definition Three elements Properties/application UML class diagrams Event traces Definition Properties/application UML sequence diagrams State machines Definition Two elements Properties/application UML statechart diagrams,10,Capturing the Require
10、ments,Modeling notations Data-flow diagrams (DFD) Definition Four elements Properties/application UML use case diagrams Functions and relations Decision table(*) How to build a decision table?,11,Capturing the Requirements,Prototyping requirements Rapid prototyping Throwaway prototyping Evolutionary
11、 prototyping Prototyping vs. modeling Requirements documentation Requirements definition Requirements specification,12,Designing the System,What is a design? Conceptual design/ system design Technical design Decomposition and modularity High level lower level Modular decomposition Data-oriented deco
12、mposition Event-oriented decomposition Outside-in design Object-oriented design Modules/ components,13,Designing the System,Architectural styles and strategies Three design levels: architecture, code design, and executable design Architectural styles description, properties, and examples Pipes and f
13、ilters Object-oriented design Layering Repositories Interpreters C/S, B/S Issues in design creation Modularity and levels of abstraction Collaborative design Concurrency,14,Designing the System,Characteristics of good design Component independence Why component independence? Coupling uncoupled, data
14、 coupling, stamp coupling, control coupling, common coupling, and content coupling Cohesion coincidental, logical, temporal, procedural, communicational, sequential, functional Exception identification and handling Typical exceptions Handling strategies Fault prevention and fault tolerance,15,Testin
15、g the Programs,Software faults and failures Types of faults Testing issues Test opinions Test organization -- testing steps Module testing, component testing, or unit testing Integration testing System testing function test, performance test, acceptance test, and installation test Testing techniques
16、 Black box White box,16,Testing the Programs,Unit testing Examining the code Code walkthroughs Code inspections Success of the code reviews Test thoroughness Logic flow (*) Integration testing Bottom-up integration Top-down integration Big-bang integration Sandwich integration Comparison of the stra
17、tegies,17,Testing the System,Principles of system testing Sources of software faults System testing process Configuration management Versions and releases Regression testing Deltas, separate files, and conditional compilation Change control Test team Function testing Purpose and roles Cause-and-effe
18、ct graphs,18,Testing the System,Performance testing Purpose and roles Types of performance tests Reliability, availability, and maintainability Definition Measurement Acceptance testing Purpose and roles Types of acceptance tests Installation testing Test documentation Test plan test specification a
19、nd evaluation test description --- test analysis report,19,Maintaining the System,What is maintaining Any work done to change the system after it is in operation is considered to be maintenance The typical development project takes between one and two years but requires and additional five to six ye
20、ar so maintenance time. More than half of a projects programming resources are spent on maintenance In accordance with 80-20 rule: 20% of the effort is in development and 80% is in maintenance,20,Maintaining the System,Four types of maintenance activities Corrective maintenance Adaptive maintenance
21、Perfective maintenance Preventive maintenance,21,About the exam,I. Single Choice (2 * 15 = 30 points) 1. We do NOT consider quality software in the way ( C ) A. The quality of the product B. The quality of the process C. The quality of the development team D. The quality in the context of the bu
22、siness environment,22,About the exam,II. T(True) or F(False) (1 * 10 = 10 points) 1. ( T ) A computer engineer focuses on the computer as a problem-solving tool. 2. ( F ) If we get behind schedule, we can add more developers and catch up.,23,About the exam,III. Questions(6 * 5 = 30 points) 1. List the software development steps and the corresponding development roles.,24,About the exam,IV. Problem Solving(10 * 3 = 30 points),