1. Lời giới thiệu Phát triển phần mềm phụ thuộc rất nhiều vào sự hiểu biết sâu sắc về các hoạt động và các thời kỳ trong vòng đời phát triển phần mềm làm việc cùng nhau như thế nào. Ứng dụng về các bài thực hành kỹ sư phần mềm thông qua các khả năng cải thiện vòng đời để bàn giao dự án có chất lượng cao một cách đúng hạn, đúng với yêu cầu đặt ra và trong một ngân sách có thể chấp nhận được. Khóa học này cung cấp một cái nhìn tổng quan về các nguyên tắc nghiêm ngặt về kỹ sư phần mềm cũng như những quy định giữa chúng. Các học viên sẽ được học từng giai đoạn trong vòng đời của sản phẩm để làm hài lòng khách hàng. 2. Đối tượng Khóa học này rất phù hợp cho các học viên là những người đang phát triển hay quản lý dự án phần mềm 3. Yêu cầu trước khi tham gia khoá học Để hoàn thành tốt khoá học, học viên cần phải: - Có kiến thức về quy trình sản xuất sản phầm phần mềm
4. Các kỹ năng thu được Sau khi hoàn thành khoá học, học viên có thể: - Xây dựng, bảo dưỡng một dự án phần mềm có chất lượng đúng hạn và với kinh phí cho phép
- Lựa chọn mô hình vòng đời phát triển phần mềm tương ứng cho dự án của học viên
- Áp dụng các phương pháp tương ứng về yêu cầu, phân tích, thiết kế và kiểm thử
- Xác định được ngông ngữ, cơ sở dữ liệu, kiến trúc phần mềm và các vấn đề về chất lượng
- Khai thác triệt để các hoạt động kiểm tra, kiểm định trong suốt vòng đời của sản phẩm
- Dùng những nhân viên kỹ thuật đủ trình độ để đạt được chuẩn SEI CMMI và IEEE 9000
- Nâng cao ảnh hưởng của các CASE tools, các phương thức chuẩn và các kỹ thuật về thiết kế Web
5. Thời lượng: 30 giờ
Nội dung khóa học INTRODUCTION AND OVERVIEW Software development challenges - Defining project success
- Containing maintenance costs
- Meeting user/client requirements
Software engineering fundamentals - The scope of software
- The software engineering discipline
SOFTWARE LIFE CYCLES Life cycle phases - Understanding the problem
- Developing the solution
- Verifying the product
- Maintaining the system
Popular software life cycle models - Waterfall
- V
- Phased
- Evolutionary
- Spiral
Alternative techniques - UP
- DSDM
- JAD
- PSP/TSP
- Extreme programming
- Prototyping
- Agile software development
Standards - The role and types of standards
- ISO 12207: life cycle standard
- IEEE standards for software engineering processes and specifications
PLANNING AND MANAGING REQUIREMENTS Eliciting requirements - Determining what you need to know
- Devising a strategy
- Translating user requirements into system and software requirements
Documenting requirements - Functional requirements
- Non-functional requirements
Managing requirements - Laying a foundation for the entire project life cycle
- Traceability and change control
ANALYZING AND DESIGNING YOUR SYSTEM The roles of analysis and design - Identifying the \\\\\\\"what\\\\\\\"
- Translating to the \\\\\\\"how\\\\\\\"
Traditional structured approaches - Data modeling
- Process modeling
Object-oriented (OO) strategies - Modeling with UML
- Class diagrams
Deciding on your approach - Comparing the alternatives
- Allowing adequate time for analysis and design
BUILDING YOUR SOFTWARE Language and platform issues - Procedural vs. OO languages
- Operating systems
- CBSE
Database issues - Traditional databases
- Object-oriented databases
VERIFYING AND VALIDATING YOUR RESULTS Static confirmation - Reviews, walkthroughs and inspections
- How static confirmation processes improve software quality
Dynamic testing - Objectives of the various types of testing
- Determining who performs testing
Traceability matrices - Their importance throughout the life cycle
- Creating and maintaining the matrices
BUILDING QUALITY INTO THE PROCESS Configuration management (CM) - The CM process, activities
- The role and responsibilities of a CCB
Software quality assurance (SQA) - Determining quality measurements
- Enriching CPI
- Incorporating an SQA program
Project measurements - People/project issues
- Technical metrics
Quality and process standards and guidelines - IEEE 9000
- ISO 15504
- SEI CMMI
ADDITIONAL PROJECT CONSIDERATIONS Project and risk management - The cooperative roles of software engineering and project management
- Developing risk response strategies
Software engineering ethics - Code of ethics
- Responsibility issues
CASE tools - Types of tools available
- Selecting appropriate tools
Utilizing formal methods - Employing set theory and logic notation
- Verifying requirements mathematically
Applying Web engineering techniques - Delivering a complex array of content and functionality
Employing a user-centered process |