Skip to content

Latest commit

 

History

History
156 lines (95 loc) · 11.8 KB

File metadata and controls

156 lines (95 loc) · 11.8 KB

Software Engineering

[TOC]

Res

Related Topics

The Essence of Computing - Programs & The Semantics of ProgramsComputer Languages & Programming Methodology

Development Related Conferences & Events

C & CPPPythonGolangJava

🔥 ↗ AppendixGalleries & Awesome SECracked Software

Software Security

Github

Learning Resources

Intro

软件是需求(规约)在计算机数字世界里的投影。

【并发 bug 和应对 (死锁/数据竞争/原子性违反;防御性编程和动态分析) [南京大学2022操作系统-P8]】 https://www.bilibili.com/video/BV1sR4y1V7T4/?share_source=copy_web&vd_source=7740584ebdab35221363fc24d1582d9d

Information, Language, and Computing

Universe, Self-Awareness, and Intelligence

Information TheoryInformation, Data, Number and Math in Digital SystemsLanguage & LiteratureLogic (and Critical Thinking)

MathematicsMathematical Logic (Foundations of Mathematics)

Theory of ComputationAutomata Theory and (Formal) Language Theory

Program, Software, and Information Systems

The Essence of Computing - Programs & The Semantics of ProgramsProgram Execution (Runtime)

OS Processes & Automata Management (CPU + Main Memory Resource)

application_execution_and_computer_data_flow.excalidraw|800 How a program is created and executed.

Software Engineering in a Nutshell

🔗 software engineering tutorial

the software is a collection of integrated programs.

software subsists of carefully-organized instructions and code written by developers on any of various particular computer languages.

computer programs and related documentation such as requirements, design models and user manuals.

engineering is the application of scientific and practical knowledge to invent, design, build, maintain, and improve frameworks, processes, etc.

Software Engineering is an engineering branch related to the evolution of software product using well-defined scientific principles, techniques, and procedures. The result of software engineering is an effective and reliable software product.

Categories of Software & Information Systems

Tertiary Economical SectorInformation Technology Industry

From computer's perspective: computer_architecture_and_computer_science.excalidraw | 800 Computer System & Computer Science Overview

From society's perspective: (below is not the best illustration. the best illustration should be the overview of economical sectors of human society.)  | 800 The relationship of language, information/data, computation, and automation.

Software Processes & Life Circle

A software process is the set of activities and associated outcome that produce a software product. Software engineers mostly carry out these activities. These are four key process activities, which are common to all software processes. These activities are:

  1. Software specifications: The functionality of the software and constraints on its operation must be defined.
  2. Software development: The software to meet the requirement must be produced.
  3. Software validation: The software must be validated to ensure that it does what the customer wants.
  4. Software evolution: The software must evolve to meet changing client needs.

🆚 Program vs. Software

Software is more than programs. Any program is a subset of software, and it becomes software only if documentation & operating procedures manuals are prepared.

Software Process Model

A software life cycle model (also termed process model) is a pictorial and diagrammatic representation of the software life cycle. A life cycle model represents all the methods required to make a software product transit through its life cycle stages. It also captures the structure in which these methods are to be undertaken.

See more on ↗️ SDLC (Software Development Life Circle) & SDLC Models

Software Management

Project Management

Risk Management

Software Metrics

Software Design & Development

↗️ Software Development Norms & PatternsWeb Application System Architecture Design Pattern

Application Software EngineeringSystem Software Engineering

Requirement Engineering

Requirements engineering (RE) refers to the process of defining, documenting, and maintaining requirements in the engineering design process. Requirement engineering provides the appropriate mechanism to understand what the customer desires, analyzing the need, and assessing feasibility, negotiating a reasonable solution, specifying the solution clearly, validating the specifications and managing the requirements as they are transformed into a working system. Thus, requirement engineering is the disciplined application of proven principles, methods, tools, and notation to describe a proposed system's intended behavior and its associated constraints.

Requirement Engineering

  • SRS
  • Data Flow Diagram
  • Entity-Relationship Diagram

Software Supply Chain

Software Quality and Security

ICT System Reliability (Correctness) & VerificationSoftware Quality Assurance (SQA)

↗️ [Software Testing](../Operations Management/🧪 Software Testing/Software Testing.md) ↗ Network Penetration (Pen-testing)Vulnerability Discovery & Scanning(漏洞检测 & 扫描)

Software Maintenance & Operations

Software Maintenance & Operations Management

Ref

pattern.dev

B端产品设计规范

常用的软件需求说明书模板

如何建立一套自己的产品规范?