Đối với bất cứ việc gì, nếu có cách làm tốt thì hiệu quả sẽ cao, ngược lại thì sẽ rất vất vả. Việc học nói chung, và việc học lập trình nói riêng cũng vậy. Nếu không biết cách học, chúng ta sẽ rất vất vả, lâu đạt được thành quả, mất động lực, không hạnh phúc, không tự tin, hoang mang, nản lòng và thậm chí là bỏ cuộc.
Kỹ năng học là một kỹ năng cực kỳ quan trọng, rất tiếc, rất nhiều học sinh và sinh viên hiện tại không biết cách học. Học lập trình thì còn đòi hỏi thêm nhiều kỹ năng đặc thù khác nữa, nhưng hiện tại lại có rất ít sách vở hoặc các kênh khác đề cập đến chủ đề này một cách bài bản.
Live Stream lần này sẽ đề cập đến nhiều nội dung liên quan đến nguyên lí, phương pháp và hướng dẫn để các bạn đang học lập trình có thể áp dụng ngay và nâng cao hiệu quả học tập nhằm có được sự tiến bộ nhanh chóng. Một số nội dung bao gồm: Học kiến thức, Rèn luyện kỹ năng, Rèn luyện thái độ, Rèn luyện thói quen, và một số các cách làm hay để duy trì động lực học tập. Live Stream cũng sẽ dành một khoảng thời gian để các thành viên có thể trao đổi, chia sẻ và nhận được các lời khuyên hữu ích về cách xử lý các tình huống trong quá trình học tập, và đồng thời có các định hướng học tập và nghề nghiệp đối với các bạn trẻ đang chưa định hình được rõ ràng lộ trình của mình.
Design Pattern - Những công thức vàng trong thiết kếNhật Nguyễn Khắc
Link video: https://www.youtube.com/watch?v=VbOJrq71lVA
Chúng ta đã bàn về Clean Code và SOLID, đã biết về các lợi ích của chúng. Câu hỏi quan trọng còn lại là:
Làm thế nào để có Clean Code và SOLID?
Câu trả lời sẽ liên quan đến nhiều yếu tố khác nhau, bao gồm cả văn hoá, thói quen, trình độ năng lực, các kỹ thuật và công cụ..., và trong đó một yếu tốt rất quan trọng là chúng ta cần sử dụng tốt Design Pattern.
Design Pattern là các giải pháp tổng quát có thể tái sử dụng cho các trường hợp thường gặp khi thiết kế kiến trúc phần mềm.
Một số lợi ích của Design Pattern có thể kể đến như:
- Đẩy nhanh tốc độ thiết kế và phát triển phần mềm
- Chất lượng của giải pháp đã được minh chứng
- Ngăn ngừa các vấn đề phát sinh nếu thiết kế không tốt
- Có thể áp dụng cho rất nhiều tình huống khác nhau
- Dễ dàng cộng tác, chia sẻ thiết kế và mã nguồn giữa các bên.
Trong phiên Livestream về chủ đề Design Pattern, chúng ta sẽ bàn kỹ hơn về khái niệm quan trọng này, các ý nghĩa của nó, điểm qua các Design Pattern được sử dụng phổ biến và đồng thời xem xét một số ứng dụng của Design Pattern trong các tình huống thực tế.
Đối với bất cứ việc gì, nếu có cách làm tốt thì hiệu quả sẽ cao, ngược lại thì sẽ rất vất vả. Việc học nói chung, và việc học lập trình nói riêng cũng vậy. Nếu không biết cách học, chúng ta sẽ rất vất vả, lâu đạt được thành quả, mất động lực, không hạnh phúc, không tự tin, hoang mang, nản lòng và thậm chí là bỏ cuộc.
Kỹ năng học là một kỹ năng cực kỳ quan trọng, rất tiếc, rất nhiều học sinh và sinh viên hiện tại không biết cách học. Học lập trình thì còn đòi hỏi thêm nhiều kỹ năng đặc thù khác nữa, nhưng hiện tại lại có rất ít sách vở hoặc các kênh khác đề cập đến chủ đề này một cách bài bản.
Live Stream lần này sẽ đề cập đến nhiều nội dung liên quan đến nguyên lí, phương pháp và hướng dẫn để các bạn đang học lập trình có thể áp dụng ngay và nâng cao hiệu quả học tập nhằm có được sự tiến bộ nhanh chóng. Một số nội dung bao gồm: Học kiến thức, Rèn luyện kỹ năng, Rèn luyện thái độ, Rèn luyện thói quen, và một số các cách làm hay để duy trì động lực học tập. Live Stream cũng sẽ dành một khoảng thời gian để các thành viên có thể trao đổi, chia sẻ và nhận được các lời khuyên hữu ích về cách xử lý các tình huống trong quá trình học tập, và đồng thời có các định hướng học tập và nghề nghiệp đối với các bạn trẻ đang chưa định hình được rõ ràng lộ trình của mình.
Design Pattern - Những công thức vàng trong thiết kếNhật Nguyễn Khắc
Link video: https://www.youtube.com/watch?v=VbOJrq71lVA
Chúng ta đã bàn về Clean Code và SOLID, đã biết về các lợi ích của chúng. Câu hỏi quan trọng còn lại là:
Làm thế nào để có Clean Code và SOLID?
Câu trả lời sẽ liên quan đến nhiều yếu tố khác nhau, bao gồm cả văn hoá, thói quen, trình độ năng lực, các kỹ thuật và công cụ..., và trong đó một yếu tốt rất quan trọng là chúng ta cần sử dụng tốt Design Pattern.
Design Pattern là các giải pháp tổng quát có thể tái sử dụng cho các trường hợp thường gặp khi thiết kế kiến trúc phần mềm.
Một số lợi ích của Design Pattern có thể kể đến như:
- Đẩy nhanh tốc độ thiết kế và phát triển phần mềm
- Chất lượng của giải pháp đã được minh chứng
- Ngăn ngừa các vấn đề phát sinh nếu thiết kế không tốt
- Có thể áp dụng cho rất nhiều tình huống khác nhau
- Dễ dàng cộng tác, chia sẻ thiết kế và mã nguồn giữa các bên.
Trong phiên Livestream về chủ đề Design Pattern, chúng ta sẽ bàn kỹ hơn về khái niệm quan trọng này, các ý nghĩa của nó, điểm qua các Design Pattern được sử dụng phổ biến và đồng thời xem xét một số ứng dụng của Design Pattern trong các tình huống thực tế.
Khi phát triển một phần mềm cần xác định những thành phần cần sử dụng để bắt tay vào công việc. Điều này đảm bảo tính logic và nhất quán cho sản phẩm phần mềm từ lúc bắt đầu xây dựng cho đến lúc duy trì, thậm chí là cải tiến. Vậy Software Stack là gì và làm thế nào để thiết lập Stack khi phát triển phần mềm!
https://growupwork.com/blog/kien-thuc-ky-thuat/software-stack-la-gi-771
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...Vu Hung Nguyen
Giới thiệu
ScrumDay là một chuỗi hội thảo phi lợi nhuận chuyên sâu về phương pháp phát triển phần mềm Agile\Scrum, sự kiện này được diễn ra tại nhiều thành phố trên thế giới. Năm 2012, lần đầu tiên Cộng đồng Scrum tại Hà Nội đã tổ chức ScrumDay và đạt được nhiều thành công tốt đẹp. Đến 2013, ScrumDay với chủ đề “Transition” mong muốn tiếp tục là Ngày hội của cộng đồng Scrum Hà Nội với các mục đích:
Giới thiệu và thúc đẩy sự phát triển Agile\Scrum
Phát triển một cộng đồng Agile\Scrum lớn mạnh ở Việt Nam từ đó góp phần đổi mới và phát triển ngành phát triển phần mềm Việt Nam
Chia sẻ kinh nghiệm triển khai từ những người thực hành và chuyên gia
Hỗ trợ các Công ty\Tổ chức trong việc áp dụng và thực hành phương pháp Agile\Scrum
Khác với ScrumDay 2012 nội dung đề cập tới hầu hết các khía cạnh căn bản trong Agile\Scrum, đối tượng trải rộng từ sinh viên\developer tới những nhà quản lý, hội nghị năm nay với chủ đề là “Transition” và hướng tới các đối tượng như sau:
Giám đốc\Quản lý doanh nghiệp trong lĩnh vực phần mềm: những người mong muốn thấu hiểu khách hàng hơn, đáp ứng tốt hơn nguyện vọng của họ để phát triển kinh doanh.
Các CTO: những người đang đau đầu với sự thay đổi quá nhanh của Công nghệ, muốn có một công cụ mạnh hơn cho chiến lược công nghệ tại công ty
Team Leader: Những người mong muốn xây dựng một team mạnh Các Tech Startup founders: Những người luôn muốn tạo ra sản phẩm đột phá "disrupt the market"
Salesperson\Marketer: Những người muốn áp dụng Agile\Scrum vào công việc của mình
Những Nhà thực hành và nghiên cứu Agile\Scrum: những người đam mê và thực hành triết lý Agile, những người có đam mê chia sẻ hiểu biết để cùng nhau xây dựng một cộng đồng Agile mạnh tại Việt Nam, góp phần thúc đẩy sự phát triển của ngành.
Giới thiệu trang phần mềm giáo dục trực tuyến Cùng học. Dành cho cấp Tiểu học.Bùi Việt Hà
Đây là Slide bài trình bày của công ty School@net trong buổi hội thảo sáng mai, thứ 6, ngày 7/8/2015, giới thiệu các tính năng mới nhất của trang phần mềm giáo dục trực tuyến Cùng học (http://cunghoc.vn). Hội thảo do Công ty School@net và Sở Giáo dục và Đào tạo Hà Nội phối hợp thực hiện.
This document provides an introduction to printing and reporting features in Rational Rose 98i. It outlines objectives to print diagrams and specifications and use reports, including usage reports, instance reports, access violation reports, SODA reports, participant reports, and documentation reports. The document describes setting printer options, printing diagrams and specifications, viewing page breaks, and generating various reports. It concludes with an exercise to run the different reports.
Khi phát triển một phần mềm cần xác định những thành phần cần sử dụng để bắt tay vào công việc. Điều này đảm bảo tính logic và nhất quán cho sản phẩm phần mềm từ lúc bắt đầu xây dựng cho đến lúc duy trì, thậm chí là cải tiến. Vậy Software Stack là gì và làm thế nào để thiết lập Stack khi phát triển phần mềm!
https://growupwork.com/blog/kien-thuc-ky-thuat/software-stack-la-gi-771
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...Vu Hung Nguyen
Giới thiệu
ScrumDay là một chuỗi hội thảo phi lợi nhuận chuyên sâu về phương pháp phát triển phần mềm Agile\Scrum, sự kiện này được diễn ra tại nhiều thành phố trên thế giới. Năm 2012, lần đầu tiên Cộng đồng Scrum tại Hà Nội đã tổ chức ScrumDay và đạt được nhiều thành công tốt đẹp. Đến 2013, ScrumDay với chủ đề “Transition” mong muốn tiếp tục là Ngày hội của cộng đồng Scrum Hà Nội với các mục đích:
Giới thiệu và thúc đẩy sự phát triển Agile\Scrum
Phát triển một cộng đồng Agile\Scrum lớn mạnh ở Việt Nam từ đó góp phần đổi mới và phát triển ngành phát triển phần mềm Việt Nam
Chia sẻ kinh nghiệm triển khai từ những người thực hành và chuyên gia
Hỗ trợ các Công ty\Tổ chức trong việc áp dụng và thực hành phương pháp Agile\Scrum
Khác với ScrumDay 2012 nội dung đề cập tới hầu hết các khía cạnh căn bản trong Agile\Scrum, đối tượng trải rộng từ sinh viên\developer tới những nhà quản lý, hội nghị năm nay với chủ đề là “Transition” và hướng tới các đối tượng như sau:
Giám đốc\Quản lý doanh nghiệp trong lĩnh vực phần mềm: những người mong muốn thấu hiểu khách hàng hơn, đáp ứng tốt hơn nguyện vọng của họ để phát triển kinh doanh.
Các CTO: những người đang đau đầu với sự thay đổi quá nhanh của Công nghệ, muốn có một công cụ mạnh hơn cho chiến lược công nghệ tại công ty
Team Leader: Những người mong muốn xây dựng một team mạnh Các Tech Startup founders: Những người luôn muốn tạo ra sản phẩm đột phá "disrupt the market"
Salesperson\Marketer: Những người muốn áp dụng Agile\Scrum vào công việc của mình
Những Nhà thực hành và nghiên cứu Agile\Scrum: những người đam mê và thực hành triết lý Agile, những người có đam mê chia sẻ hiểu biết để cùng nhau xây dựng một cộng đồng Agile mạnh tại Việt Nam, góp phần thúc đẩy sự phát triển của ngành.
Giới thiệu trang phần mềm giáo dục trực tuyến Cùng học. Dành cho cấp Tiểu học.Bùi Việt Hà
Đây là Slide bài trình bày của công ty School@net trong buổi hội thảo sáng mai, thứ 6, ngày 7/8/2015, giới thiệu các tính năng mới nhất của trang phần mềm giáo dục trực tuyến Cùng học (http://cunghoc.vn). Hội thảo do Công ty School@net và Sở Giáo dục và Đào tạo Hà Nội phối hợp thực hiện.
This document provides an introduction to printing and reporting features in Rational Rose 98i. It outlines objectives to print diagrams and specifications and use reports, including usage reports, instance reports, access violation reports, SODA reports, participant reports, and documentation reports. The document describes setting printer options, printing diagrams and specifications, viewing page breaks, and generating various reports. It concludes with an exercise to run the different reports.
RoseScript is a scripting language that allows users to automate tasks and customize Rational Rose by accessing and modifying model elements. It can be used to extract information from models, generate reports, integrate with other tools, and make changes to models such as adding or renaming packages and classes. The document provides an overview of RoseScript concepts and capabilities as well as examples of scripts that obtain information from and make changes to Rose models.
The document discusses team development using Rational Rose and configuration management. It describes how to:
1. Create controlled units to partition the model and place components under configuration control.
2. Define an integration workspace and developer workspaces using a configuration management system like ClearCase.
3. Determine which model components should be controlled units and provide access to configuration management tools within Rational Rose.
This document provides an introduction to creating component and deployment diagrams in Rational Rose 98i. It discusses how to create packages, components, and map classes to components. It also covers how to create relationships between components, component diagrams, deployment diagrams, and their various stereotypes. Exercises are included to allow the user to practice creating components, mapping classes, and building component and deployment diagrams.
This document provides an introduction to activity diagrams in Rational Rose 98i. It outlines the objectives of understanding activity diagrams which are to create them, add activities and transitions between activities, model concurrent flows and decisions, and use swimlanes. It also describes the key elements of an activity diagram like activities, transitions, start and end states, forks, joins, decisions, and swimlanes. The document aims to teach the user how to construct basic activity diagrams in Rational Rose 98i.
This document provides an introduction to state diagrams in Rational Rose 98i. It outlines the objectives of learning to create state diagrams containing states, transitions, actions and nested states. It describes the various tools and elements used to build state diagrams, including states, transitions, actions, start and end states, and nested states. The document concludes with an exercise to create a state diagram.
This document provides an introduction to creating collaboration diagrams in Rational Rose 98i. It outlines how to create objects from classes, link objects with messages between them, and map messages to class operations. It notes that while objects and links can be created, messages cannot be moved or inserted in a collaboration diagram, requiring the use of a sequence diagram instead to rearrange messages as needed before switching back to the collaboration diagram. The document includes exercises for the reader to practice these skills by creating sample collaboration and sequence diagrams.
This document provides an introduction to sequence diagrams in Rational Rose 98i. It outlines how to create a sequence diagram, assign objects to classes, add and manipulate messages between objects, and create scripts and collaboration diagrams based on the sequence diagram. The objectives are to learn how to create a sequence diagram, assign objects, map messages to operations, create scripts, and generate a collaboration diagram from the sequence diagram.
This document provides an introduction to class diagrams in Rational Rose 98i. It covers how to create classes, add attributes and operations, define relationships between classes, and use packages to organize classes. The key elements of a class diagram - classes, interfaces, packages and relationships - are described. Guidelines are provided for documenting classes, applying stereotypes, and setting attribute and operation visibility. The document concludes with exercises for creating example class diagrams.
The document introduces use case diagrams, which show the functionality of a system and how it interacts with external actors. It discusses creating actors and use cases, documenting use cases, and relationships between use cases and actors. The exercises at the end instruct the reader to create a use case diagram based on example pictures and documentation.
Rational Rose 98i is a UML modeling tool that supports different views like use case, interaction, logical, component and deployment views. It allows creating models with packages, classes, use cases and other elements. The user interface consists of toolbars, browser, documentation window and diagram windows. Pathmaps and options can be configured for team development.
This document provides an introduction and outline for a course on using Rational Rose 98i Version 5.2. The course is intended for anyone needing to learn the capabilities of Rational Rose. Upon completion, participants will be able to use Rational Rose to document software projects, understand team development strategies, create scripts using RoseScript, and generate reports. The course outline covers creating various UML diagrams like use case diagrams, class diagrams, sequence diagrams, collaboration diagrams, state diagrams, activity diagrams, component diagrams, and deployment diagrams. It also covers team development and scripting.
1. Công cụ và môi trường phát triển phần mềm
Giới thiệu các đồ án môn học
CCMTPTPM
1
Lâm Quang Vũ
2. Mục đích
w Tìm hiểu cách sử dụng các công cụ hỗ trợ trong quá
trình phát triển phần mềm
w Mục tiêu:
§ Nắm vững cách sử dụng
§ Ứng dụng thực tế
CCMTPTPM
2
Lâm Quang Vũ
3. Yêu cầu tìm hiểu công cụ
§ Báo cáo về công cụ tìm hiểu
• Đặc điểm, tính năng, các bảng so sánh
• Cách sử dụng các công cụ
• Xây dựng dưới dạng tài liệu hướng dẫn sử dụng
• Có ví dụ trên bài toán thực tế
§ Ứng dụng thực tế
• Sử dụng những chức năng cơ bản nhất của công cụ
• Cách áp dụng vào bài toán thực tế
• Thực hiện trên càng nhiều công cụ càng tốt à có sự so
sánh, đánh giá
§ Tutorial, Demo, Avi, Help, Trang Web hướng dẫn …
CCMTPTPM
3
Lâm Quang Vũ
4. Cách thực hiện
w Thông tin nhóm
§ Nhóm tối đa 4 người
§ Họ tên – MSSV – Email – Điện thoại (nếu có)
w Đăng ký
§ Mỗi đề tài tối đa 3 nhóm thực hiện (ưu tiên theo ĐTB)
§ Lớp trưởng tổng hợp DS
§ Bắt buộc thực hiện, không thay đổi trong suốt quá trình thực hiện
w Thời gian thực hiện
§ Từ ngày nhận đến cuối học kỳ
§ Có báo cáo tiến độ giữa kỳ
w Hình thức chấm
§ Seminar trên lớp lý thuyết, thực hành (từ giữa học kỳ)
§ Vấn đáp trực tiếp (cuối học kỳ)
CCMTPTPM
4
Lâm Quang Vũ
5. Một số đồ án tham khảo cộng điểm
w Tìm hiểu và so sánh các công cụ hỗ trợ trong quá trình phát
triển phần mềm
§ Các công cụ tạo HELP (Htlm Help…)
§ Các công cụ tạo chương trình SETUP (Install Shield, Install
Wise…)
§ Các công cụ hỗ trợ quản lý yêu cầu (Rational Requisite Pro)
§ Các công cụ quản lý dự án (Microsoft Project…)
§ Các công cụ hỗ trợ quản lý phiên bản (Visual SourceSafe…)
§ Các công cụ hỗ trợ ghép, so sánh mã nguồn…
§ Các công cụ tạo DEMO cho các phần mềm…
w Tìm hiểu các thư viện hỗ trợ lập trình giao diện trong môi
trường .NET
CCMTPTPM
5
Lâm Quang Vũ
6. Một số đồ án tham khảo cộng điểm
w Tìm hiểu các công cụ hỗ trợ phân tích thiết kế bằng
UML, xây dựng ứng dụng minh họa:
§ Together Control Soft
§ Objecteering
§ Visual UML
§ Enterise Architecture
§ Các công cụ hỗ trợ PTTK bằng UML khác
CCMTPTPM
6
Lâm Quang Vũ
7. Một số đồ án nâng cao
w Tìm hiểu các thư viện mã nguồn mở (openSource)
§ Sử dụng thư viện mã nguồn mở để phát triển ứng dụng
§ Phát triển tiếp một ứng dụng mã nguồn mở (dạng Case
Tools)
w Xây dựng CASE Tools hỗ trợ phát triển phần mềm
§ Tạo HELP
§ Đóng gói
§ Quản lý yêu cầu
§ Quản lý dự án
§ Quản lý phiên bản
§ Ghép, so sánh mã nguồn…
§ Tạo DEMO cho các phần mềm
CCMTPTPM
7
Lâm Quang Vũ
8. Yêu cầu đồ án nâng cao
w Có khả năng đọc hiểu tài liệu tiếng Anh
w Có khả năng tự tìm kiếm tài liệu, tự nghiên cứu
w Đồ án phải được seminar báo cáo cuối HK và được
chấm vấn đáp trực tiếp
CCMTPTPM
8
Lâm Quang Vũ
9. Thông tin liên hệ, thắc mắc
w WebForum của Khoa
§ www.is-edu.hcmuns.edu.vn/webforum2k3/
w Email của giáo viên
§ Lamquangvu.teaching@gmail.com
CCMTPTPM
9
Lâm Quang Vũ