Software Engineering Software Engineering 200511357 조재연 200511357 조재연
1 Software Engineering 1.Software Engineering • The establishment and use of sound engineering principles in order to obtain g g p p economically software that is reliable and works efficiently on real machines and works efficiently on real machines. • A Layered technology • Process layer • “ how to ’ s ” for building software how to s for building software • • Automated or semiautomated support 200511357 컴퓨터공학부 조재연
2 A Process Framework 2. A Process Framework • Generic process Framework – Communication Communication – Planning – Modeling Modeling – Construction – Deployment • That can be used during the That can be used during the development of small, simple program. 200511357 컴퓨터공학부 조재연
2 A Process Framework 2. A Process Framework • Typical activities – Software project tracking and control – Risk management – Software quality assurance Software quality assurance – Formal technical reviews – Measurement Measurement – Software Configuration management – Reusability management Reusability management – Work product preparation and production 200511357 컴퓨터공학부 조재연
3 Software Process Model 3. Software Process Model • Incorporates a development strategy that encompassed the process, methods, and tools layers described earlier. • Prescriptive Models – The Waterfall Model – Incremental Process Models – Evolutionary Process Models – Specialized Process Models Speciali ed Process Models – The Unified Process 200511357 컴퓨터공학부 조재연
3 1 1 The Waterfall Model 3.1.1 The Waterfall Model 200511357 컴퓨터공학부 조재연
3.1.2 Incremental Process Models 200511357 컴퓨터공학부 조재연
The Prototyping paradigm The Prototyping paradigm 200511357 컴퓨터공학부 조재연
Sprial model Sprial model 200511357 컴퓨터공학부 조재연
Specialized Process Models Specialized Process Models • This model tend to be applied when defined software engineering approach is chosen. • Component-Based Development – Component provide targeted functionality p p g y • The Formal Method Model – A set of activities that lead to formal mathematical A set of activities that lead to formal mathematical specification of computer Software • Aspect Oriented Software Development Aspect Oriented Software Development 200511357 컴퓨터공학부 조재연
The Unified Process The Unified Process 200511357 컴퓨터공학부 조재연
3 2 Agile Software Development 3.2 Agile Software Development • Through this work we have come to value. – Individuals and interactions over process and tools and tools – Working software over comprehensive documentation documentation – Customer collaboration over contract negotiation ti ti – Responding to change over Following plan 200511357 컴퓨터공학부 조재연
3 2 Agile Software Development 3.2 Agile Software Development • Key assumptions about the majority of software projects: p j – It is difficult to predict in advance which software requirements will persist and software requirements will persist and which will change. – For many types of software, design and For many types of software design and construction are interleaved. – Analysis, design, construction, and testing A l i d i t ti d t ti are not as predicable as we might like. 200511357 컴퓨터공학부 조재연
The Extreme Programming process 200511357 컴퓨터공학부 조재연
4 The Management Spectrum 4.The Management Spectrum • People>Problem>Process – People • Recruiting, selection, performance management, training, compensation, career development, organization, and team and culture development team and culture development – The Problem • The software developer and customer must to define project objectives and scope. – The Process • The Capability Maturity Model Integration (CMMI) 200511357 컴퓨터공학부 조재연
5 Software Project Management 5. Software Project Management • Measurement and Metrics • Project Estimating Project Estimating – Effort estimation techniques – Size-Oriented Estimation Si O i d E i i – Empirical Models • Risk Analysis • Scheduling Scheduling • Tracking and Control 200511357 컴퓨터공학부 조재연
6 Software Quality Assurance 6.Software Quality Assurance • Correctness C t • Reliability • Integrity I t it • Efficiency • Usability U bilit • Maintainability • Flexibility Fl ibilit • Testability • Reusability R bilit • Interoperability 200511357 컴퓨터공학부 조재연
7. Software Configuration Management • Identify changes • Control changes Control changes • Ensure that changes are being properly i implemented l d • Report changes to others who may have Report changes to others who may have an interest 200511357 컴퓨터공학부 조재연
8 The Technical Spectrum 8. The Technical Spectrum • Software Engineering Methods – Conventional software engineering Conventional software engineering methods – Object-oriented approaches Object oriented approaches – Formal methods 200511357 컴퓨터공학부 조재연
8 2 Problem Definition 8.2 Problem Definition • Analysis Principles – The data domain of the problem must be modeled. – The functional domain of the problem must be modeled – The behavior of the problem must be modeled. – Model of data, function, and behavior must be partitioned i i d – The overriding trend in analysis is from essence t toward implementation d i l t ti 200511357 컴퓨터공학부 조재연
8 2 Problem Definition 8.2 Problem Definition • Analysis Methods – Scenario-based elements Scenario based elements – Class-based elements – Behavioral elements Behavioral elements – Flow-oriented elements 200511357 컴퓨터공학부 조재연
The Design pyramid The Design pyramid 200511357 컴퓨터공학부 조재연
8 5 Software Testing 8.5 Software Testing • Objectives Obj i – Testing is a process of executing a program with the intent of finding an error the intent of finding an error – A good test case is one that has a high probability of finding an as-yet-undiscovered error of finding an as yet undiscovered error – A successful test is one that uncovers as-yet- undiscovered error • Strategy • Tactics – Black box testing – White box testing 200511357 컴퓨터공학부 조재연
9 Software Engineering Patterns 9.Software Engineering Patterns • Process Patterns • Analysis Patterns Analysis Patterns • Design Patterns • Testing Patterns 200511357 컴퓨터공학부 조재연
10. The Road Ahead and the Three rs • Reuse • Reengineering Reengineering • Retooling 200511357 컴퓨터공학부 조재연
11 Summary 11. Summary • Various questions are asked and reasked about software engineering. g g 200511357 컴퓨터공학부 조재연
Recommend
More recommend