Software Engineering Map

 

 

Programming Languages

Rõ ràng, trừ khi bạn muốn viết phần mềm bằng mã máy, còn không thì bạn cần nắm vững ít nhất một ngôn ngữ lập trình bậc cao nào đó để có thể hiện thực ra thành những website / mobile / app / script / …

Một số ngôn ngữ lập trình phổ biến hiện nay có thể kể đến như C/C++, Java, Ruby, PHP, Python, Javascript, …

Kiến thức về Software Requirements

Software Requirements tập hợp những chủ đề (Topics) liên quan đến việc thu thập, đánh giá, phân tích, mô tả yêu cầu phần mềm (software requirements).

Dù công ty của bạn làm outsource với requirements được mô tả cụ thể và chi tiết từ đầu, hay công ty của bạn làm product, với requirements được mô tả khái quát và dần dần định hình sau mỗi vòng lặp phát triển (sprint) thì những topic này đều là cần thiết đối với bạn.

Một số topic trong mảng này có thể kể đến như: Requirements ClassificationConceptual ModelingFormal AnalysisSystem Requirement SpecificationsModel Validation, …

Kiến thức về Software Design

Software Design được định nghĩa là quá trình xác định kiến trúc (architecture), thành phần (components), giao diện (interfaces), và những yếu tố khác làm thành hệ thống phần mềm. Cũng giống như bạn hoàn toàn có thể xây một ngôi nhà nhỏ mà không cần một bản vẽ thiết kế nào, chỉ đơn thuần dựa trên kinh nghiệm của thợ xây, bạn hoàn toàn có thể xây dựng một website, một ứng dụng mobile đơn giản mà không cần phải “design” gì cả.

Nhưng rõ ràng, việc xây dựng như thế này là không hiệu quả. Khi gặp phải một yêu cầu xây dựng một hệ thống lớn, phức tạp hơn, nhiều components hơn, tương tác với nhiều third-party hơn, thì việc áp dụng một số kỹ thuật, phương pháp đã được chứng minh là đúng từ trước đó là hoàn toàn cần thiết.

Một số chủ đề con của mảng kiến thức về Software design mà bạn có thể tham khảo: Architectural StylesArchitectural Structures and ViewpointsDistribution of ComponentsControl and Handling of EventsConcurrencySecurity, …

Software Constructions

Thực tế khi làm software, giai đoạn gây hứng thú nhất chính là lúc bắt tay vào “code”, hiện thực hóa những yêu cầu, những ý tưởng trong đầu thành từng dòng lệnh cụ thể. Tuy nhiên, để code hiệu quả và sạch đẹp cũng có nhiều thứ bạn cần phải cân nhắc.

Mảng kiến thức về Software Constructions bao hàm một số quy tắc, kỹ thuật, … mà bạn có thể vận dụng trong quá trình hiện thực hóa phần mềm của mình như: ConcurrencyMiddlewareConstruction Methods for Distributed SoftwareConstruction Methods for Heterogeneous SystemsPerformance Analysis and TuningState-Based and Table-Driven Construction Techniques, …

(còn tiếp)