[TOC]
↗ The Essence of Computing - Programs & The Semantics of Programs ↗ Computer Languages & Programming Methodology
↗ Development Related Conferences & Events
↗ C & CPP ↗ Python ↗ Golang ↗ Java
🔥 ↗ Appendix ↗ Galleries & Awesome SE ↗ Cracked Software
↗ Github
软件是需求(规约)在计算机数字世界里的投影。
【并发 bug 和应对 (死锁/数据竞争/原子性违反;防御性编程和动态分析) [南京大学2022操作系统-P8]】 https://www.bilibili.com/video/BV1sR4y1V7T4/?share_source=copy_web&vd_source=7740584ebdab35221363fc24d1582d9d
↗ Universe, Self-Awareness, and Intelligence
↗ Information Theory ↗ Information, Data, Number and Math in Digital Systems ↗ Language & Literature ↗ Logic (and Critical Thinking)
↗ Mathematics ↗ Mathematical Logic (Foundations of Mathematics)
↗ Theory of Computation ↗ Automata Theory and (Formal) Language Theory
↗ The Essence of Computing - Programs & The Semantics of Programs ↗ Program Execution (Runtime)
↗ OS Processes & Automata Management (CPU + Main Memory Resource)
How a program is created and executed.
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.
↗ Tertiary Economical Sector ↗ Information Technology Industry
From computer's perspective:
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.)
The relationship of language, information/data, computation, and automation.
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:
- Software specifications: The functionality of the software and constraints on its operation must be defined.
- Software development: The software to meet the requirement must be produced.
- Software validation: The software must be validated to ensure that it does what the customer wants.
- 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.
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
↗ Application Software Engineering ↗ System Software 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.
- SRS
- Data Flow Diagram
- Entity-Relationship Diagram
↗ ICT System Reliability (Correctness) & Verification ↗ Software Quality Assurance (SQA)
